laralabs / datatablejson
此包已被废弃,不再维护。未建议替代包。
轻松从eloquent集合生成DataTable JSON并将其绑定到视图
1.0.2
2017-08-21 12:01 UTC
Requires
- php: >=7.0
- illuminate/contracts: 5.4.*|5.5.*
- illuminate/database: 5.4.*|5.5.*
- illuminate/support: 5.4.*|5.5.*
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许可发布。