ellefsen / nova-field-sortable

Adds sorting functionality to the Laravel Nova's index resource

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Laravel Nova Sortable Field

Latest Version on Packagist Total Downloads

Description

This field adds reordering functionality to your resource's index using the awesome eloquent-sortable package by the great people of Spatie.

screenshot

Requrements

Installation

This package can be installed through Composer.

composer require naxon/nova-field-sortable

Usage

  1. Follow the usage instructions on the eloquent-sortable repository to make your model sortable.
  2. Use the Naxon\NovaFieldSortable\Concerns\SortsIndexEntries trait in your Nova Resource.
  3. Add a public static property called $defaultSortField to your resource, containing your sorting column (I recomment adding it in your main app/Nova/Resource.php file).
  4. Add the Naxon\NovaFieldSortable\Sortable field to your Nova Resource fields method, using a label and your primary key column.

Example

<?php

namespace App\Nova;

use Laravel\Nova\Fields\ID;
use Illuminate\Http\Request;
use Laravel\Nova\Http\Requests\NovaRequest;
use Laravel\Nova\Fields\Text;
use Naxon\NovaFieldSortable\Concerns\SortsIndexEntries;
use Naxon\NovaFieldSortable\Sortable;

class Page extends Resource
{
    use SortsIndexEntries;
    
    public static $defaultSortField = 'sort_order';
    
    /**
     * Get the fields displayed by the resource.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function fields(Request $request)
    {
        return [
            ID::make()->sortable(),
            
            Text::make('Title'),
            
            Sortable::make('Order', 'id')
                ->onlyOnIndex(),
        ];
    }
}

Security

If you discover any security related issues, please email naxond@gmail.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

About

Adds sorting functionality to the Laravel Nova's index resource

License:MIT License


Languages

Language:PHP 57.0%Language:Vue 37.2%Language:JavaScript 5.6%Language:SCSS 0.3%