romalytvynenko/eloquent-table

此包最新版本(dev-master)没有提供许可证信息。

dev-master 2020-10-26 08:30 UTC

This package is not auto-updated.

Last update: 2024-09-18 06:05:55 UTC


README

将以下行添加到您的 composer.json

"romalytvynenko/eloquent-table": "dev-master"

将以下行添加到 config/app.php(提供者)中

'Romalytvynenko\EloquentTable\EloquentTableServiceProvider'

并将其添加到 aliases 部分中

'EloquentTable' => 'Romalytvynenko\EloquentTable\Engine\EloquentTable'

使用方法

首先,创建 EloquentTable 对象。

$exampleTable = new EloquentTable('Example', $tableSettings);

第一个参数是模型名称,$tableSettings 是用于当前表的特殊表设置。您还可以提供一些特定参数,例如 'searchable' 和 'preGet'。其中 'searchable' 是一个数组,包含可搜索的列(多么巧妙!),而 'preGet' 是一个闭包,它将在所有其他过滤器(搜索、排序等)之前应用于查询。

$tableSettings = [
    'columns' => [
        'id' => '#',
        'title' => 'Title',
        'message' => 'Message',
        'sent_at' => 'Sent',
    ],
    'sortable' => [
        'id',
        'sent_at'
    ],
    'searchable' => [
        'title'
    ],
    'preGet' => function($query) {
        /**
        * @var $query \Illuminate\Database\Query\Builder
        */
        return $query->where('type', 'group');
    },
];

现在您可以使用 show 方法渲染表格

$exampleTable->show();

更改列输出

要更改列输出,您可以使用闭包来挂钩输出

$table->columnOutput('id', function($item){
    /**
     * @var $item \Eloquent
     */
    return 'Item - ' . $item->id;
});

其中 id 是列名称的示例,匿名函数则是示例函数,其结果将替换原始列值。

您自己的表格布局

您可以轻松创建自己的表格布局。为此,请查看 views/table.php 的源代码,并自由创建您自己的。您可以通过将视图名称传递给 show 函数来使用它。

$exampleTable->show('admin.table');