pkaratanev / nova-sortable
一个Laravel Nova工具。
2.0.0
2021-01-19 10:31 UTC
Requires
- php: >=7.1.0
This package is not auto-updated.
Last update: 2024-09-26 02:56:28 UTC
README
Nova sortable
为Laravel Nova的索引资源添加排序功能
安装
composer require ofcold/nova-sortable
使用
- 在你的数据库迁移文件中添加排序字段。
示例
$table->unsignedInteger('sort_order')->nullable();
- 特质条目
use Ofcold\NovaSortable\SortableTrait; class Entry extends Model { use SortableTrait; }
- 指定资源是否需要排序。
class Example extends Resource { /** * Build an "index" query for the given resource. * * @param \Laravel\Nova\Http\Requests\NovaRequest $request * @param \Illuminate\Database\Eloquent\Builder $query * * @return \Illuminate\Database\Eloquent\Builder */ public static function indexQuery(NovaRequest $request, $query) { $query->when(empty($request->get('orderBy')), function ($q) { $q->getQuery()->orders = []; return $q->orderBy(static::$model::orderColumnName()); }); return $query; } /** * Prepare the resource for JSON serialization. * * @param \Laravel\Nova\Http\Requests\NovaRequest $request * @param \Illuminate\Support\Collection $fields * * @return array */ public function serializeForIndex(NovaRequest $request, $fields = null) { return array_merge(parent::serializeForIndex($request, $fields), [ 'sortable' => true ]); } }
更改排序字段名
你只需更改条目中的'method' 'orderColumnName'。
/* * Determine the column name of the order column. */ public static function orderColumnName(): string { return 'your sort order column name'; }