srk-grid/gridview

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

此包的规范存储库似乎已丢失,因此已冻结该包。

v4.3.13 2020-10-25 08:23 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

然后运行命令将在app/Grid目录中创建名为UserGrid的类

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配置目录中,所有表格配置都存在于此PHP文件中,您可以自定义默认配置

此配置包括三个部分(表格 - Excel - 分页)用于设置表格、Excel元素和分页元素的属性,并设置查询结果的分页数等

也可以为任何表格更改srkgridview.php文件中存在的所有配置

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

->headerColumns()

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

目前内部数组有三个键

headdisbaledisableExcel

head

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

disable

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

disableExcel

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

->addColumns()

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

使用类型字符串

->addColumns('username') 

使用类型闭包

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

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

->renderGrid()

此方法终止创建表格