bytestechnolabs / datagrid
This package is not auto-updated.
Last update: 2024-09-23 12:32:18 UTC
README
Custom DataGrid 是一个强大的 Laravel 包,它可以简化创建动态表格的过程,代码量最小。它具有与 Bootstrap 5 兼容、CSV 和 TSV 导出、排序、搜索以及行内或批量操作等功能,这使得管理表格数据变得轻松。本 README 将指导您完成安装和配置过程,以确保您充分发挥 Custom DataGrid 的潜力。
目录
关于本项目
Custom DataGrid 为构建强大表格提供了一种简化的方法。其设置简单和定制灵活,使其成为开发者提升数据管理能力的首选。
兼容性
Custom DataGrid 完全兼容 Laravel 10,确保与现有项目的无缝集成。
安装
要开始使用 Custom DataGrid,请按照以下简单步骤操作
-
添加依赖:您可以通过 Composer 安装此包。在您的终端中运行以下命令
composer require bytestechnolabs/datagrid
-
服务提供者:将 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 功能。
-
存储链接到公共目录:执行
php artisan storage:link
依赖项
请确保已安装和配置以下依赖项
- Bootstrap 5
- jQuery
使用方法
简单示例
让我们通过一个基本示例来了解如何在 Laravel 应用程序中实现 Custom DataGrid。
use Datagrid\Facades\DataGridFacade; use Illuminate\Support\Facades\Session; 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('your blade file', ['dataGrid' => $dataGrid]); }
请确保将 User::class 替换为 DataGridFacade::model() 调用中的您的模型。
在 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 数据网格包渲染数据网格,指定所选列、搜索列和所有可用列。可选地,对结果进行分页。
// 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 文件来显示由包提供的数据网格。
