eltiarsalem / gridview
简单创建与Eloquent和Laravel查询构建器兼容的表格
Requires
- php: ^7.0
- phpoffice/phpspreadsheet: ^1.10
Requires (Dev)
- laravel/framework: ^6.0
- phpunit/phpunit: ^9
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()
此方法终止创建表格