signifly / nova-order-field
基于 spatie/eloquent-sortable 的 Laravel Nova 排序字段。
2.0.8
2019-10-25 12:47 UTC
Requires
- php: >=7.1.0
- spatie/eloquent-sortable: ^3.4
README
描述
一个字段,使用 Spatie 的 eloquent-sortable 包为你的 Laravel Nova 资源索引添加排序功能。
演示
安装
此包可以通过 Composer 安装。
composer require signifly/nova-order-field
使用
- 按照 eloquent-sortable 存储库中的 使用说明 使你的模型可排序。
- 将
Signifly\Nova\Fields\Order\Orderable
特性添加到你的 Nova 资源中。 - 在你的资源中添加一个名为
$defaultOrderField
的公共静态属性,包含你的排序列。 - 将
OrderField
添加到你的 Nova 资源fields
方法中。
分组
如果你的模型/表有一个分组字段(通常是一个外键):id,
user_id
, title, order_column
并且你希望上述方法考虑它,你可以在你的模型中创建一个 buildSortQuery
方法
public function buildSortQuery() { return static::query()->where('user_id', $this->user_id); }
这将限制计算只针对模型实例的字段值。
示例
use Signifly\Nova\Fields\Order\Orderable; use Signifly\Nova\Fields\Order\OrderField; class Page extends Resource { use Orderable; public static $defaultOrderField = 'order'; public function fields(Request $request) { return [ OrderField::make('Order'), ]; } }
感谢 Michiel Kempen 的初始工作。