我想創建一個dataTable的用戶,其中每行有一個下拉子行包含用戶權限的複選框。因此,非常動態的「超級」管理員可以點擊用戶並在表格中分配他們的權限。Laravel 5 dataTables,初始化表與控制器功能
首先,不確定這是否是一個好主意,所以請隨時提出一個更好的方法。也許每行一個簡單的彈出模式會更容易,但現在我已經認定這將是一個很酷的方式,所以我繼續前進。
嘗試使用AJAX初始化dataTable,但目前我難住了。
PermissionsController.php
public function grid()
{
//retrieve data from models
$data['data'] = collect([ 'admins' => $admins, 'roles' => $roles ]);
return $data;
}
routes.php文件
Route::get('user-permissions', '[email protected]');
permissions.blade
<table class="table table-striped" id="admins_table" >
<thead>
<tr>
<th>Last Name</th>
<th>First Name</th>
<th>Email</th>
<th>Phone</th>
</tr>
</thead>
</table>
JS
var oTable = $('#admins_table').dataTable({
"sDom": "<'row'<'col-md-6'l><'col-md-6'f>r>t<'row'<'col-md-12'p i>>",
"aaSorting": [],
"oLanguage": {
"sLengthMenu": "_MENU_ ",
"sInfo": "Showing <b>_START_ to _END_</b> of _TOTAL_ entries"
},
"ajax": {
//here's where I'm trying to grab the data
"url": "http://example.app/user-permissions",
"dataSrc": "data"
},
"columns": [
{ "data": "last_name" },
{ "data": "first_name" },
{ "data": "email" },
{ "data": "phone" }
]
});
阿賈克斯
{
"data":
{
"admins":
[{
"id":31,
"email":"[email protected]",
"last_login":"2015-07-27 09:50:50",
"first_name":"Gary",
"last_name":"Barlow",
"roles":[{
"id":1,"slug":"admin"
}]
}],
"roles":
[
{"id":3,"slug":"admin","name":"Admin"},
{"id":7,"slug":"accounts","name":"Accounts"},
{"id":8,"slug":"sales","name":"Sales"},
{"id":9,"slug":"superAdmin","name":"SuperAdmin"}
]
}
}
「管理」 對象包括所傳遞和他們已經分配的角色的所有管理員。這些應該顯示爲已在子行內打勾。 「角色」對象將包含所有可用於允許分配其他角色的當前角色。基本上,這確定了需要出現的複選框的數量。
由於上述內容與初始化有關,我已經將其餘部分抽象出來。非常感謝任何幫助。
嘗試使用AJAX我得到什麼,但「沒有在表中的可用數據」的時候,如果我在瀏覽器中鍵入路徑路徑我得到的JSON對象輸出。
我不知道我應該如何調用路線。
url: '/user-permissions',
dataSrc: 'data.admins',
success: function (data) {
console.log(data);
}
以上就足夠了嗎?我真的不想打電話給整個網址。我甚至添加了一個成功函數來嘗試獲取數據的控制檯輸出,但仍然沒有任何結果。
@davidkonrad嗨。首先,感謝您的回覆!是的,我確實錯過了示例數據中的電話屬性。 我的目標實際上並不是有一個選擇框,因爲它將用戶限制爲一個角色,而是有一個包含多個複選框的子行。 子行將通過圖標切換到每行最左側。很像demo'd [這裏](https://datatables.net/examples/api/row_details.html)。 我會與你的建議一起去看看它是否解決表初始化。 –
我在Ajax部分之後添加了一段,以更好地解釋信息的用途。 –
@LukeVincent,我應該嘗試做一個小例子嗎?我可以用子行來做到這一點,但如果你自己想出來,這會好得多。樂於幫助。 – davidkonrad