首页 > 解决方案 > Laravel 和客户端数据表

问题描述

在工作中,我们拥有比服务器更好的计算机,所以我想使用客户端数据表来显示大量数据。

但是我没有找到很多关于客户端数据表和 laravel 的教程。

我使用 yajra 包,这里使用 laravel 5.4 的服务器端数据表的简单代码。

路由.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');
});

表.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 的新手。

感谢您的帮助 !

标签: phplaraveldatatable

解决方案


您需要获取 Laravel 端 ( Route.php) 上的所有用户,如yajra/laravel-datatables文档中所示:

return datatables()
    ->eloquent(User::select(['id', 'name', 'email', 'created_at'])->get())
    ->toJson();

我假设您使用的是最新的 yajra/laravel-datatables


推荐阅读