ofcold / nova-sortable
此包已被弃用且不再维护。未建议替代包。
Laravel Nova 工具。
1.0.6
2019-10-15 15:24 UTC
Requires
- php: >=7.1.0
README
为 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 ]); } }
更改排序字段名称
您只需更改条目中的 'orderColumnName' 方法。
/* * Determine the column name of the order column. */ public static function orderColumnName(): string { return 'your sort order column name'; }