firmino/tablegrid

可重用网格结构,可在应用的多个地方使用。

安装: 42

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 0

开放问题: 0

类型:

dev-master 2017-11-08 13:51 UTC

This package is not auto-updated.

Last update: 2024-09-28 03:10:19 UTC


README

可重用网格结构,可在应用的多个地方使用。

安装

通过composer安装。配置composer.json文件以允许安装稳定性为dev的包

composer require firmino/tablegrid

在config/app.php中注册ServiceProvider

'providers' => [
      Firmino\TableGrid\Providers\TableGridServiceProvider::class,
]

也在同一文件中注册Facade

'aliases' => [
      'TableGrid' => Firmino\TableGrid\Facades\TableGrid::class,
]

发布配置文件

php artisan vendor:publish --provider="Firmino\TableGrid\Providers\TableGridServiceProvider"

如何使用

使用TableGrid Facade来配置表格,它具有以下方法,可用于创建表格结构

基本示例

<?php
// código omitido ....

use Firmino\TableGrid\Facades\TableGrid;

// codigo omitido ....

public function index(){
    $table = TableGrid::model(Model::class)
        ->columns([
            [
                'label' => 'Titulo',
                'name' => 'title'
            ]
        ])
        ->search();
    return view('view')->with('table', $table);
 }

要渲染表格,只需在HTML中以以下方式调用`render()`方法

{!! $table->render() !!}

方法

model(Model $model = null)

接收一个包含要显示在表格中的数据的数组。如果没有提供,将返回模型。

columns(Array $columns = null)

如果未发送任何值,则检索包含列信息的矩阵。否则接收一个矩阵

[
  [
     'label' => 'Titulo',
      'name' => 'title'
  ]
]

还可以发送一个名为`field`的键,以便在要显示的字段是模型的一些关系对象时,此键应接收显示此对象的哪个字段。示例

[
  [
     'label' => 'Autor',
      'name' => 'user',
      'fiedl' => 'name'
  ]
]
rows()

检索表格的行

activeDataTable(Boolean $active)

配置是否应使用DataTable插件。

dataTable()

检索dataTable属性,该属性标识DataTable插件是否激活。

actions()

检索添加到表格中的操作

addAction(string $label, string $route, string $template, string $class = 'btn btn-default btn-sm')

向表格添加一个要显示的操作。

  • $label => 链接中显示的文本。
  • $route => 点击链接时将重定向到的路由名称。
  • $template => 将在前端显示的链接模板。
  • $class => 用于自定义链接的Bootstrap类。
addEditAction(string $label, string $route, string $template, string $class = 'btn btn-primary btn-sm')

向表格添加一个编辑操作。

  • $label => 链接中显示的文本。
  • $route => 点击链接时将重定向到的路由名称。
  • $template => 将在前端显示的链接模板。
  • $class => 用于自定义链接的Bootstrap类。
addDeleteAction(string $label, string $route, string $template, string $class = 'danger')

向表格添加一个删除操作。

  • $label => 链接中显示的文本。
  • $route => 点击链接时将重定向到的路由名称。
  • $template => 将在前端显示的链接模板。
  • $class => 用于自定义链接的Bootstrap类。
search()

在配置的model对应的数据库表中执行查询。

render()

渲染表格。

模板

包包含3个基本的模板来渲染操作链接,可以如下调用

  • Table::templates.edit-action
  • Table::templates.delete-action
  • Table::templates.action (用于其他操作)

配置

配置文件允许对DataTable插件进行一些调整。

  • translation_table (允许将表格信息翻译为portugues-br)
  • zero_records (当表格中没有找到记录时显示的文本)
  • search (出现在表格搜索栏旁边的文本)

示例

使用编辑和删除操作

<?php
// código omitido ....

use Firmino\TableGrid\Facades\TableGrid;

// codigo omitido ....

public function index(){
    $table = TableGrid::model(Model::class)
            ->columns([
                [
                    'label' => 'Titulo',
                    'name' => 'title'
                ],
                [
                    'label' => 'Autor',
                    'name' => 'user',
                    'field' => 'name'
                ]
            ])
            ->activeDataTable(true)
            ->addEditAction('Editar', 'edit', 'Table::templates.edit-action')
            ->addDeleteAction('Excluir', 'destroy', 'Table::templates.delete-action', 'danger')
            ->search();

      return view('home')->with('table', $table);
}

使用其他操作

<?php
// código omitido ....

use Firmino\TableGrid\Facades\TableGrid;

// codigo omitido ....

public function index(){
    $table = TableGrid::model(Model::class)
              ->columns([
                  [
                      'label' => 'Descricao',
                      'name' => 'description'
                  ]
              ])
              ->addAction('acao', 'login', 'table.action', 'warning')
              ->search();

    return view('home')->with('table', $table);
 }