pixelcreation / nova-field-sortable
A Nova field for ordering resources.
Installs: 47 366
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 0
Forks: 26
pkg:composer/pixelcreation/nova-field-sortable
Requires
- php: >=8.0
- laravel/nova: ^4.0
- spatie/eloquent-sortable: ^4.0
README
Description
This field adds reordering functionality to your resource's index using the awesome eloquent-sortable package by the great people of Spatie.
This package is a fork of Teatrante/nova-field-sortable, which is a fork of the original package Naxon/nova-field-sortable. It includes improvements to the layout
Requirements
- Nova 4
- spatie/eloquent-sortable (If not already installed, this package will install if for you and all you have to do is follow the installation instructions).
Installation
This package can be installed through Composer.
composer require pixelcreation/nova-field-sortable
Upgrading from v3.x to v4.x
- Instead of the primary key column, you'll need to supply the name of the sort column in the
Sortablefield.
Usage
- Follow the usage instructions on the eloquent-sortable repository to make your model sortable.
- Use the
PixelCreation\NovaFieldSortable\Concerns\SortsIndexEntriestrait in your Nova Resource. - Add a public static property called
$defaultSortFieldto your resource, containing your sorting column (I recommend adding it in your mainapp/Nova/Resource.phpfile). - Add the
PixelCreation\NovaFieldSortable\Sortablefield to your Nova Resourcefieldsmethod, using a label and your sorting column.
Example
<?php namespace App\Nova; use Laravel\Nova\Fields\ID; use Laravel\Nova\Http\Requests\NovaRequest; use Laravel\Nova\Fields\Text; use PixelCreation\NovaFieldSortable\Concerns\SortsIndexEntries; use PixelCreation\NovaFieldSortable\Sortable; class Page extends Resource { use SortsIndexEntries; public static $defaultSortField = 'sort_order'; /** * Get the fields displayed by the resource. * * @param NovaRequest $request * @return array */ public function fields(Request $request) { return [ ID::make()->sortable(), Text::make('Title'), Sortable::make('Order', 'sort_order') ->onlyOnIndex(), ]; } }
Credits
License
The MIT License (MIT). Please see License File for more information.