signifly / nova-order-field
This package is abandoned and no longer maintained.
No replacement package was suggested.
A Laravel Nova Order field based on spatie/eloquent-sortable.
2.0.8
2019-10-25 12:47 UTC
Requires
- php: >=7.1.0
- spatie/eloquent-sortable: ^3.4
README
Description
A field that adds reordering functionality to your Laravel Nova resource's index using the eloquent-sortable package by Spatie.
Demo
Installation
This package can be installed through Composer.
composer require signifly/nova-order-field
Usage
- Follow the usage instructions on the eloquent-sortable repository to make your model sortable.
- Add the
Signifly\Nova\Fields\Order\Orderable
trait to your Nova Resource. - Add a public static property called
$defaultOrderField
to your resource, containing your order column. - Add the
OrderField
to your Nova Resourcefields
method.
Grouping
If your model/table has a grouping field (usually a foreign key): id,
user_id
, title, order_column
and you'd like the above methods to take it into considerations, you can create a buildSortQuery
method at your model:
public function buildSortQuery() { return static::query()->where('user_id', $this->user_id); }
This will restrict the calculations to fields value of the model instance.
Example
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'), ]; } }
Thank you to Michiel Kempen for his initial work.