datagrid / crud
This package is not auto-updated.
Last update: 2024-09-19 13:36:10 UTC
README
自定义数据网格(Custom DataGrid)是一个强大的Laravel包,它通过最少的代码简化了创建动态网格的过程。它具有Bootstrap 5兼容性、CSV和TSV导出、排序、搜索以及行内或批量操作等功能,使得表格数据的管理变得轻而易举。本README将指导您完成安装和配置过程,确保您充分发挥Custom DataGrid的潜力。
目录
关于此项目
Custom DataGrid提供了一种简化的方法来构建Laravel应用程序的强大网格。其设置简单和定制灵活,使其成为开发者提升数据管理能力的首选。
兼容性
Custom DataGrid完全兼容Laravel 10,确保与现有项目的无缝集成。
安装
要开始使用Custom DataGrid,请按照以下简单步骤操作
-
添加依赖项:您可以通过Composer安装此包。在终端中运行以下命令
composer require datagrid/crud
-
服务提供者:将Custom DataGrid服务提供者添加到Laravel应用程序的
config/app.php
文件中Datagrid\DatagridServiceProvider::class,
-
发布配置:执行
php artisan vendor:publish --provider="Datagrid\DatagridServiceProvider"
以发布配置文件。 -
自动加载:通过运行
composer dump-autoload
刷新Composer自动加载文件。 -
包含资源:在HTML中包含必要的JavaScript和CSS依赖项以启用Custom DataGrid功能。
依赖
请确保已安装和配置以下依赖项
- Bootstrap 5
- jQuery
使用
简单示例
让我们通过在Laravel应用程序中实现Custom DataGrid的基本示例来深入了解。
use Datagrid\Facades\DataGridFacade; public function index() { // Define the unique session key $sessionKey = config('datagrid.User_SessionKey'); // Retrieve the selected columns from the session $columns = Session::get($sessionKey); // Use default columns if session data is not set if ($columns === null) { $columns = config('datagrid.users_columns'); Session::put($sessionKey, $columns); } // Get all available columns $columnsAll = config('datagrid.users_columns'); // Render the data grid $dataGrid = DataGridFacade::model(User::class) ->columns($columns) ->searchColumns($columns) ->columnsAll($columnsAll) ->paginate(10); return view('test', ['dataGrid' => $dataGrid]); }
请确保在DataGridFacade::model()
调用中将User::class
替换为您自己的模型。
在Laravel中配置数据网格
要利用Laravel中数据网格的配置,请按照以下步骤操作
1. 定义唯一会话键
在您的控制器方法(本例中的index()
)中,从配置文件中检索唯一会话键。此键用于管理特定表格的相关会话。
// Define the unique session key $sessionKey = config('datagrid.User_SessionKey');
2. 获取所选列
使用之前步骤中获得的唯一会话键从会话中检索所选列。
// Retrieve the selected columns from the session $columns = Session::get($sessionKey);
3. 如果会话数据未设置,设置默认列
如果未设置所选列的会话数据,请使用配置文件中指定的默认列并将其存储在会话中。
// Use default columns if session data is not set if ($columns === null) { $columns = config('datagrid.users_columns'); Session::put($sessionKey, $columns); }
4. 获取所有可用列
从配置文件中检索所有可用列。
// Get all available columns $columnsAll = config('datagrid.users_columns');
5. 渲染数据网格
使用Laravel Data Grid包渲染数据网格,指定所选列、搜索列和所有可用列。可选地分页结果。
// Render the data grid $dataGrid = DataGridFacade::model(User::class) ->columns($columns) ->searchColumns($columns) ->columnsAll($columnsAll) ->paginate(10);
6. 将数据传递给视图
将数据网格传递给视图进行渲染。
return view('test', ['dataGrid' => $dataGrid]);
通过遵循这些步骤,您可以在Laravel应用程序中有效地利用数据网格的配置。
多表格配置
要配置多个表格并指定其唯一列和会话键,请按照以下步骤操作
1. 定义表列
在 config/datagrid.php
文件中,指定每个表下的列,使用 users_columns
数组。每个表都应该有一个包含列名的数组。
示例
'users_columns' => [ 'id', 'name', 'email', 'email_verified_at', ],
2. 指定唯一列
使用格式 ModelName_unique_column
定义每个表的唯一列。此配置用于在更新记录时验证唯一性。
示例
'User_unique_column' => 'email',
3. 设置会话键
使用格式 ModelName_SessionKey
为每个表分配一个唯一的会话密钥。此密钥用于管理与特定表相关的会话。
示例
'User_SessionKey' => 'user_columns',
4. 启用或禁用编辑选项
指定表是否具有可用的编辑选项。如果表允许编辑,则设置为 true
,否则设置为 false
。
示例
'User_has_edit_option' => false,
为要配置的每个表重复这些步骤。确保配置准确且在所有表中保持一致。
Blade 文件示例
要在 Laravel 应用程序中包含该包的视图,请按照以下步骤操作
-
在您的
resources/views
目录中创建一个新的 blade 文件(例如,datagrid.blade.php
)。 -
将以下代码添加到 blade 文件中
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> @include('datagrid::layouts.style') </head> <body> {!! $dataGrid->render() !!} </body> </html>
-
确保包含所有必要的样式并使用包提供的
render()
方法渲染数据网格。 -
然后您可以在应用程序中使用此 blade 文件来显示包提供的数据网格。
结果将如下所示