laralabs/datatablejson

此包已被废弃,不再维护。未建议替代包。

轻松从eloquent集合生成DataTable JSON并将其绑定到视图

1.0.2 2017-08-21 12:01 UTC

This package is auto-updated.

Last update: 2021-02-12 14:42:21 UTC


README

此包旨在简化为DataTable组件创建JSON数据的过程。

最近我开始使用Vue DataTable组件,发现我需要一个简单的方式来格式化和传递数据到视图以保持一切整洁。

安装

使用composer安装此包

{
    "require": {
      "laralabs/datatablejson": "~1.0.1"     
    }
}

更新composer后,将服务提供者添加到你的config/app.php中的providers数组中

'providers' => [
    Laralabs\DataTableJson\DataTableJsonServiceProvider::class
];

现在您可以将配置文件发布到config/datatablejson.php

php artisan vendor:publish --tag=config

编辑发布的配置文件以适应您的应用程序。

建议您将命名空间从默认的'window'更改

使用方法

将特性添加到Eloquent模型顶部

use DataTableJsonTrait;

在模型中添加public $columns = [],这定义了将在表中使用的列。

以下是一个填充的$columns数组的示例

    public $columns = [
        [
            "label" => "ID",
            "field" => "id",
            "searchable" => true,
            "orderable" => true
        ],
        [
            "label" => "First Name",
            "field" => "first_name",
            "searchable" => true,
            "orderable" => true
        ],
        [
            "label" => "Actions",
            "field" => "actions",
            "searchable" => false,
            "orderable" => false,
            "html" => true,
            "content" => '<a class="btn waves-light waves-effect" href="/admin/users/edit/{id}">
                            <i class="fa fa-pencil"></i>
                        </a>'
        ]
    ];

示例中的Actions列展示了如何创建可以包含HTML片段的列,通过使用{field_name}从其他字段获取数据

定义了列后,您可以创建一个集合并应用转换函数。

$users = Users::all();
$users->toDataTableJson();

这将构建数据并将其添加到配置文件中指定的视图之前。

遇到特殊情况需要不同的字段集?您可以传递一个$columns数组到该函数,这将覆盖模型中指定的列。

$columns = [
    [
      "....." => "...."
    ]
]
$users = Users::all();
$users->toDataTableJson($columns);

此包旨在与MicroDroid/vue-materialize-datatable很好地协同工作

致谢

感谢Laracasts的Jeffrey Way,他的Laracasts/PHP-Vars-To-Js-Transformer包使我能够包括视图绑定功能。

支持

如有问题,请在Github上提出。

许可

这是一个开源软件,根据MIT许可发布。