dcoding/laravel-data-grid

Laravel 集合的简单数据网格。

dev-master 2019-08-15 14:13 UTC

This package is auto-updated.

Last update: 2024-09-16 01:44:29 UTC


README

Laravel 集合的简单数据网格。

Packagist

安装

composer require dcoding/laravel-data-grid

使用

在使用它之前,您需要将一些元素包含到您的应用程序中。请按照以下列出的点进行操作。

  1. 在页面中添加 css。您可以将整个文件复制到 public/css 目录并在布局中包含它,或者将其内容复制到您自己的文件中。如果您使用的是特定主题,也可以忽略它。包中的文件路径是 src/datagrid.css

  2. 将包中的 src/datagrid.blade.php 模板复制到视图根目录 resources/views。如果您使用的是特定主题,请随意调整模板。

  3. 在您想使用网格的控制器中,添加命名空间 use Dcoding\DataGrid;

  4. 在您想使用网格的动作中,添加以下片段

(可选) 清除存储在会话中的搜索结果

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.
    ]
]