gasparilab/actionablelist

为管理面板生成可操作列表。

0.1.5 2017-11-03 13:55 UTC

This package is not auto-updated.

Last update: 2024-09-22 08:52:55 UTC


README

License: MIT

这是一个为 Laravel 5.5 设计的包,允许您轻松创建物品表格,特别是用于管理面板。它需要 PHP 7.1

请注意,此包处于开发阶段,目前还不稳定,不适用于生产。例如,新版本可能会引入破坏性更改。感谢。

安装

您可以通过 composer 轻松安装此包

composer require gasparilab/actionablelist

此包支持新的 Laravel 服务提供者自动发现,因此不需要手动将其放入 config/app.php 中的 providers 数组。

如果您想自定义表格的 HTML 代码(您可能会的!)

php artisan vendor:publish --tag=actionablelist --force

这将把视图复制到您应用中的 resources/views/vendor/actionablelist 文件夹,这样您就可以自定义它们并保持版本控制。--force 参数会覆盖任何同名现有视图,如果您正在从旧版本更新此包,这将非常有用。

用法

创建表格的完整语法

// Instantiate a new Table
$table = new Table();

// Add columns
$table->addColumns(['Quantity', 'Color', 'Animal']);

// Add the dataset
$table->addDataset([
    ['one', 'red', 'cat'],
    ['two', 'green', 'bird'],
    ['three', 'blue', 'dog'],
]);

// Set the formatter for a column
$table->columns[0]->setFormatter(function ($animals) {
    return 'The color is ' . $animals[1];
});

快速创建表格

您也可以使用静态 make() 函数快速创建新的表格。第一个参数是列的数组,第二个参数是每个列的格式化器数组,第三个参数是数据集。

示例:创建一个有三个列和两个项目的表格。

$table = Table::make([
    'id' => 'ID',
    'title' => 'Title',
    'created_by' => 'Author',
], [
    function ($row) {
        return 'ID: ' . $row[0];
    },
    function ($row) {
        // Return the title
        return $row[1];
    },
    function ($row) {
        return new HtmlString('<em>The author is:</em> ' . $row[2]);
    },
], [
    [1, 'Lorem Ipsum', 'John Doe'],
    [2, 'Dolor Sit', 'Pippo Pluto'],
    // ...more rows...
]);

表格还具有流畅的接口,允许您像查询构建器一样链式调用方法。

Table::addColumns($columns)->addDataset($data)->addFormatters($formatters); // ...and so on

数据集

数据集可以是数组、集合、Eloquent 集合或任何实现了 ArrayAccess 接口的其它 可迭代 对象。

在视图中打印表格

在您的 Blade 视图中,您可以通过以下方式打印表格

@include('actionablelist::table')

测试

vendor/bin/phpunit vendor/gasparilab/actionablelist/tests

Postcardware

此包采用 MIT 许可证,但如果它进入您的生产环境,我们将非常感谢您从您的家乡寄给我们一张明信片。我们的地址是

GaspariLab
via Minghetti, 18
40057 Cadriano di Granarolo E. (BO)
ITALY

鸣谢

Luca Andrea Rossi 为 GaspariLab S.r.l. 制作的包。