laravel 的ORM,不支持按条件拼装sql语句。
所以datatables的服务器端模式就不太好搞,自己写需要写很多混乱的代码。
因此,找到一个库,专门用来在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()
{
return
Datatables::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',
])
;
完成。刷新页面,应该是能看到漂亮的表格了。