srk-grid / gridview
简单创建与eloquent和Laravel查询构建器兼容的表格
此包的规范存储库似乎已丢失,因此已冻结该包。
Requires
- php: ^7.0
- phpoffice/phpspreadsheet: ^1.10
Requires (Dev)
- laravel/framework: ^6.0
- phpunit/phpunit: ^9
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()
此方法创建表格的表头,它接受一个包含另一个数组的数组作为输入
目前内部数组有三个键
head
、disbale
和disableExcel
head
此键用于创建列名['head'=>'full name']
disable
此键用于隐藏列,如果 ['disable'=>false]
disableExcel
此键用于Excel中的隐藏列,如果['disableExcel'=>false]
->addColumns()
此方法创建表格的主体,它接受两种类型的值作为输入:string
和closure
使用类型字符串
->addColumns('username')
使用类型闭包
当在Laravel的Eloquent中使用关系时,查询结果是嵌套对象,您可以使用闭包来访问嵌套对象,如下所示
->addColumns(function($query){ return $query->methodRelation->nameColumn })
->renderGrid()
此方法终止创建表格