ymo / laratables
一个将您的 Eloquent 模型轻松转换为 JSON 以供 Datatables 1.10+ 使用的包。
Requires
- php: >=5.4.0
- illuminate/support: ~5
This package is not auto-updated.
Last update: 2024-09-24 03:05:52 UTC
README
Laravel 包,用于将 Eloquent 查询转换为 JSON 输出,以便与 Datatables 一起使用。
安装
将以下内容添加到您的 composer.json 文件中。
require {
"ymo/laratables": "~2"
}
运行 composer install。
打开 app/config/app.php 并添加
'Ymo\Laratables\LaratablesServiceProvider',
同时添加别名
'Laratables' => 'Ymo\Laratables\Facades\LaratablesFacade',
并从命令行发布配置
php artisan vendor:publish
用法
使用模型函数设置主要的 Eloquent 模型。
$dt = Laratables::model('NewsItem');
设置任何您想使用的可选关系。
$dt->with('user', 'category');
设置您想检索的列。关系模型的列以 . 编写。
$dt->columns([ 'id', 'title', 'user.first_name', 'newsCategory.name', 'created_at', 'updated_at' ]);
围绕一个列包裹一些可选的 HTML。参数可以通过将它们包裹在花括号中来传递。
$dt->wrapHtml('title', '<a href="news/{id}/edit">', '</a>');
$dt->wrapHtml('user.first_name', '<a href="users/{user->id}/edit">', '</a>');
也可以手动添加额外的列。
$dt->addColumn('delete','<a class="btn btn-danger" href="news/{id}" data-method="delete">Delete</a>');
获取 JSON 输出。
$response = $dt->make();
链式调用
属性设置器都返回 L4EloquentDatatables 对象,因此您可以轻松地链式调用命令。上述示例可以重写为以下内容。
Laratables::model('NewsItem')
->with('user', 'newsCategory')
->columns([ 'id', 'title', 'user.first_name', 'newsCategory.name', 'created_at', 'updated_at' ])
->wrapHtml('title', '<a href="news/{id}/edit">', '</a>')
->wrapHtml('user.first_name', '<a href="users/{user->id}/edit">', '</a>')
->addRawColumn('delete','<a class="btn btn-danger" href="news/{id}" data-method="delete">Delete</a>')
->make();
限制
这是一个相当简单的包,功能非常少。它是为了个人使用而制作的,但我认为其他人可能也会用到它。我认为最重要的限制是您不能对关系模型的列进行排序。如果您有兴趣编写支持此功能,您非常受欢迎。