eltiarsalem/gridview

简单创建与Eloquent和Laravel查询构建器兼容的表格

dev-main 2023-07-24 18:43 UTC

This package is not auto-updated.

Last update: 2024-10-01 18:48:14 UTC


README

此包帮助您使用PHP语言在Laravel框架中创建动态HTML表格

要求

laravel >= 5.6
php >= 7.x
phpspreadsheet >= 1.14

简介

此包与Laravel的Eloquent和查询构建器兼容

您必须使用Eloquent或查询构建器编写查询,而不使用终止方法,如 paginate() get() all()

安装

composer require srk-grid/gridview

php artisan vendor:publish --provider="SrkGrid\GridView\SrkGridViewProvider"

快速入门

运行命令 php artisan make:gird UserGrid

接下来运行命令将创建类 UserGrid 在app/Grid目录下

namespace App\Grid;

use SrkGrid\GridView\BaseGrid;
use SrkGrid\GridView\GridView;

class UserGrid implements BaseGrid
{
    /**
     * Render method for get html view result
     *
     * @param GridView $grid
     * @param $data
     * @param $parameters
     * @return mixed
     */
    public function render($grid, $data, $parameters = null)
    {
        return $grid->headerColumns([
                   ['head'=>'name],
                   ['head'=>'username'],
                   ['head'=>'email'],
               ])
               ->addColumns('name')
               ->addColumns('username')
               ->addColumns('email')
               ->renderGrid();
    }
}

在控制器中调用 Grid::make() 在index方法或其他任何您想显示表格的方法中

$data = User::query()

$view = Grid::make($data,\App\Grid\UserGrid::class);

并在blade视图中渲染 $view

{!! $view !!}

说明

接下来运行命令

php artisan vendor:publish --provider="SrkGrid\GridView\SrkGridViewProvider"

创建自动化的artisan命令 php artisan make:grid GridName 和 srkgridview.php 在Laravel的config目录下,所有表配置都存在于这个PHP文件中,您可以自定义默认配置

此配置包括三个部分(表格 - Excel - 分页)以设置表格和Excel元素的HTML属性,以及分页元素的设置和查询结果的分页数量等

对于任何表格,您都可以更改文件srkgridview.php中存在的所有配置

您必须调用三个方法来创建表格 ->headerColumns() ->addColumns() 和最终 ->renderGrid() ,其他方法是可选的

->headerColumns()

此方法创建表格的表头,它接受另一个数组作为输入的数组

目前内部数组有三个键

head disbale disableExcel

head

此键用于创建列名 ['head'=>'full name']

disable

此键用于隐藏列,如果 ['disable'=>false]

disableExcel

此键用于在Excel中隐藏列,如果 ['disableExcel'=>false]

->addColumns()

此方法创建表格的主体,它接受两种类型值 string closure 作为输入

使用类型 string

->addColumns('username') 

使用类型 closure

当在Eloquent Laravel中使用关系时,结果查询是嵌套对象,您可以使用闭包来访问嵌套对象,如下所示:


->addColumns(function($query){
    return $query->methodRelation->nameColumn
})

->renderGrid()

此方法终止创建表格