thenandan / grids
Laravel 5+ 框架的网格
v3.2
2020-09-13 10:00 UTC
Requires
- php: >=7.1.0
- illuminate/support: >=4.2
- laravelcollective/html: v6.*
- nayjest/builder: ~2
Requires (Dev)
- roave/security-advisories: dev-master
Suggests
- laravelcollective/html: Required to work with Laravel 5.X
- maatwebsite/excel: Required to work with Excel export component
- dev-master
- v3.2
- v3.0.x-dev
- v3.0.0
- v2.0.2
- v2.0.1
- v2.0.0
- v1.3.8
- v1.3.7
- v1.3.6
- v1.3.5
- v1.3.4
- v1.3.3
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.0
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.0
- v0.9.12
- v0.9.11
- v0.9.10
- v0.9.8
- v0.9.7
- v0.9.6
- v0.9.5
- v0.9.4
- v0.9.3
- v0.9.2
- v0.9.1
- v0.9.0
- v0.8.4
- v0.8.3
- v0.8.2
- v0.8.1
- v0.8.0
- v0.7.13
- v0.7.12
- v0.7.11
- v0.7.10
- v0.7.9
- v0.7.8
- v0.7.7
- v0.7.6
- v0.7.5
- v0.7.4
- v0.7.3
- v0.7.2
- v0.7.1
- v0.7
- v0.6.3
- v0.6.2
- v0.6.1
- v0.6.0
- v0.5.1
- v0.5.0
- v0.4.10
- 0.4.9
- v0.4.8
- v0.4.7
- v0.4.6
- v0.4.5
- v0.4.4
- v0.4.3
- v0.4.2
- v0.4.1
- v0.4.0
- v0.3.21
- v0.3.20
- v0.3.19
- v0.3.18
- v0.3.17
- v0.3.16
- v0.3.15
- v0.3.14
- v0.3.13
- v0.3.12
- v0.3.11
- v0.3.10
- v0.3.9
- v0.3.8
- v0.3.7
- v0.3.6
- v0.3.5
- v0.3.4
- v0.3.3
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.0
This package is auto-updated.
Last update: 2024-09-14 18:20:49 UTC
README
Laravel 数据网格框架
此包是从 Nayjest/Grids 分支出来的,并且是该包的包装器,不支持 (laravel < 5),默认使用 bootstrap 4。
需求
- Laravel >= 5+
- php >= 7.1
- bootstrap 4
- fontawesome 5
安装
composer require thenandan/grids
发布资产
php artisan vendor:publish --tag=public
创建 Grid 类
php artisan make:grid CompanyGrid
这将生成以下 CompanyGrid 类 -
<?php namespace App\Grids; use Illuminate\Database\Eloquent\Model; use TheNandan\Grids\BaseGrid; class CompanyGrid extends BaseGrid { /** * Set root model for the grid query * * @return Model */ protected function setModel(): Model { // return new model instance } /** * Configure your grid * * @return void */ protected function configureGrid(): void { // Configure your grid column } }
现在我们来配置我们的网格如下 -
<?php namespace App\Grids; use Illuminate\Database\Eloquent\Model; use TheNandan\Grids\BaseGrid; class CompanyGrid extends BaseGrid { /** * Set root model for the grid query * * @return Model */ protected function setModel(): Model { return new Company(); } /** * Configure your grid * * @return void */ protected function configureGrid(): void { $this->grid->setCachingTime(0); $this->grid->addColumn('id', 'Id')->setSortable(); $this->grid->addColumn('unique_id', 'Unique ID')->setSortable()->setSearchFilter(); $this->grid->addColumn('name', 'Company Name')->setSortable()->setSearchFilter(); $this->grid->addColumn('created_at', 'Added On')->setCallback(function ($createdAt) { if (null === $createdAt || !$createdAt instanceof Carbon) { return '-'; } return Carbon::createFromTimestamp($createdAt->timestamp)->isoFormat('LLLL'); })->setDateFilter(); $this->grid->addColumn('edit_client', 'Edit')->setCallback(function ($val, $row) { return "<a href='#'><i class='fas fa-edit'></i></a>"; }); $this->grid->addColumn('delete_client', 'Delete')->setCallback(function ($val, $row) { return "<a href='#' class='text-danger'><i class='fas fa-trash'></i></a>"; }); } }
这就完成了,我们的网格已经配置好了。
在 UI 中渲染网格
创建一个 blade (视图) 文件(例如 company.blade.php),并在其中包含网格。下面是一个示例 -
@extends('layouts.app') @section('content') @include('grids::default') @endsection
注意
请确保在您的主体布局中添加以下内容 -
- 在您的大纲中 -
@yield('grid_css')
- 在关闭 body 标签之前 -
@yield('grid_js')
现在创建您自己的路由并返回公司视图。您将看到类似于以下内容的网格。
可用的网格方法
- setGridName($name) - 设置网格名称
- setDefaultPageSize($number) - 设置默认每页大小。
- setCachingTime($timeInMinute) - 设置缓存时间(分钟)。
- addColumn($column, $label = false, $relation = false) - 在网格中添加新列。
- setRecordsPerPage(array $recordsPerPage) - 设置每页记录下拉列表。
可用的嵌套列方法
- setSortable() - 当使用列时,该列变得可排序
- setCallback($function) - 可以用来自定义单元格的值
- shorten(int $noOfChar = 20) - 可以用来限制网格单元格中的字符数,当使用以下方法时变得可用
- setTitle() - 在 html 标题属性中设置单元格的原始值
- setToolTip($isHtml = false) - 在工具提示中设置单元格的原始值
- setPopover($isHtml = false, $title = null) - 在弹出框中设置单元格的原始值,这里可以使用 $title 变量来设置弹出框的标题
- setLink($link, $name) - 可以用来设置链接
- setSearchFilter($operator = TheNandanGrid::OPERATOR_LIKE) - 可以用来使列可搜索
- 更多方法即将推出 -
许可协议
© 2020—2020 Keshari Nandan
许可协议:专有