在工作中我们有比服务器更好的计算机,所以我想使用客户端数据表来显示大量数据。
但我没有找到很多关于客户端数据和laravel的教程。
我使用yajra包,这里是我用laravel 5.4的服务器端数据表的简单代码。
Route.php:
Route::get('/users/serverSide', [
'as' => 'users.serverSide',
'uses' => function () {
$users = App\User::select(['id', 'name', 'email', 'created_at']);
return Datatables::of($users)->make();
}
]);
Route::get('/table', function () {
return view('users.table');
});
Table.php:
<!DOCTYPE html>
<head>
<link href="//cdn.datatables.net/1.10.10/css/jquery.dataTables.min.css" rel="stylesheet">
</head>
<body>
<table class="datatable">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
<th>Created at</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="//cdn.datatables.net/1.10.10/js/jquery.dataTables.min.js"></script>
<script>
$(document).ready(function(){
$('.datatable').DataTable({
processing: true,
serverSide: true,
ajax: '{{ route('users.serverSide') }}'
});
});
</script>
</body>
我知道serverSide必须设置为false,我必须将所有数据作为json返回。这是我没有实现的部分,因为我是laravel的新手。
感谢您的帮助!
答案 0 :(得分:0)
您需要获取Laravel端(Route.php
)上的所有用户,如yajra/laravel-datatables文档所示:
return datatables()
->eloquent(User::select(['id', 'name', 'email', 'created_at'])->get())
->toJson();
我假设你正在使用最新的yajra / laravel-datatables