laravel 的ORM,不支持按条件拼装sql语句。
所以datatables的服务器端模式就不太好搞,自己写需要写很多混乱的代码。
因此,找到一个库,专门用来在laravel上使用datatables。
下载地址: https://github.com/yajra/laravel-datatables
安装:
composer require yajra/laravel-datatables-oracle:~5.0
添加 provider到config/app.php
yajra\Datatables\DatatablesServiceProvider::class, ... 'DataTables' => yajra\Datatables\DataTables::class,
生成配置文件:
php
artisan vendor:publish
写页面,跟平时一样,把datatables的需要css,js等引用上。配置好参数。
创建一个控制器
$ php artisan make:controller DatatablesController
引用datatables
use Datatables;
生成两个方法
/** * Displays datatables front end view * * @return \Illuminate\View\View */ public function getIndex() { return view('datatables.index'); } /** * Process datatables ajax request. * * @return \Illuminate\Http\JsonResponse */ public function anyData() { returnDatatables::of(User::select('*'))->make(true); }
在页面上,表格的参数这么写:
$('#users-table').DataTable({ processing:true, serverSide:true, ajax:'{!! route('datatables.data') !!}', });
添加路由(方法参见)
Route::controller('datatables', 'DatatablesController', [ 'anyData' => 'datatables.data', 'getIndex' => 'datatables', ]);
完成。刷新页面,应该是能看到漂亮的表格了。