datagrid/crud

1.0 2024-04-17 14:31 UTC

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,请按照以下简单步骤操作

  1. 添加依赖项:您可以通过Composer安装此包。在终端中运行以下命令

    composer require datagrid/crud
  2. 服务提供者:将Custom DataGrid服务提供者添加到Laravel应用程序的config/app.php文件中

    Datagrid\DatagridServiceProvider::class,
  3. 发布配置:执行php artisan vendor:publish --provider="Datagrid\DatagridServiceProvider"以发布配置文件。

  4. 自动加载:通过运行composer dump-autoload刷新Composer自动加载文件。

  5. 包含资源:在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 应用程序中包含该包的视图,请按照以下步骤操作

  1. 在您的 resources/views 目录中创建一个新的 blade 文件(例如,datagrid.blade.php)。

  2. 将以下代码添加到 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>
  1. 确保包含所有必要的样式并使用包提供的 render() 方法渲染数据网格。

  2. 然后您可以在应用程序中使用此 blade 文件来显示包提供的数据网格。

结果将如下所示

datagrid