dcoding / laravel-data-grid
Laravel 集合的简单数据网格。
dev-master
2019-08-15 14:13 UTC
Requires
- php: ^7.1
This package is auto-updated.
Last update: 2024-09-16 01:44:29 UTC
README
Laravel 集合的简单数据网格。
安装
composer require dcoding/laravel-data-grid
使用
在使用它之前,您需要将一些元素包含到您的应用程序中。请按照以下列出的点进行操作。
-
在页面中添加 css。您可以将整个文件复制到
public/css
目录并在布局中包含它,或者将其内容复制到您自己的文件中。如果您使用的是特定主题,也可以忽略它。包中的文件路径是src/datagrid.css
。 -
将包中的
src/datagrid.blade.php
模板复制到视图根目录resources/views
。如果您使用的是特定主题,请随意调整模板。 -
在您想使用网格的控制器中,添加命名空间
use Dcoding\DataGrid;
-
在您想使用网格的动作中,添加以下片段
(可选) 清除存储在会话中的搜索结果
if ($request->isMethod('get') && empty($request->getQueryString())) {
$request->session()->forget('search');
}
(可选) 如果启用了搜索,则处理搜索请求
$search = $request->get('search', session('search'));
if (!empty($search)) {
session(['search' => $search]);
$qb = DB::table('{{TABLE_NAME}}');
foreach ($search as $_field => $_value) {
if (!empty($_value)) {
$qb->where($_field, 'like', '%'. $_value .'%');
}
}
$collection = $qb->get();
} else {
$collection = {{MODEL_NAME}}::all();
}
(必需) 创建新的 Datagrid 实例
$dataGrid = new DataGrid($collection, columns, $options);
(必需) 将 DataGrid 实例传递到视图中
'dataGrid' => $dataGrid
(必需) 在视图中渲染 DataGrid 实例
{!! $dataGrid->render() !!}
列
目前,您可以传递要显示列的模型字段列表,例如 ['id', 'title', 'description']
。
选项
[
'caption' => 'List of items',
'model' => 'User',
'controller' => 'user',
'itemsPerPage' => 15,
'sort' => ['id', 'title'],
'search' => [
'url' => url()->route('mySearch'), // if not present, current url will be used.
'columns' => ['id', 'title', 'description'],
'values' => $search // from search fragment above.
]
]