plutuss/sortable-laravel

Sortable Filter Laravel .

1.0.8 2024-03-26 11:31 UTC

This package is auto-updated.

Last update: 2024-09-26 12:46:41 UTC


README

Laravel:

 composer require plutuss/sortable-laravel
php artisan vendor:publish --provider="Plutuss\Providers\SortableServiceProvider"

Add:

  • Plutuss\Sortable\Traits\Sortable
  • Plutuss\Sortable\Contracts\SortableInterface
<?php

namespace App\Models;

use Plutuss\Sortable\Contracts\SortableInterface;
use  Plutuss\Sortable\Traits\Sortable;

class Movie extends Model implements SortableInterface
{
    use Sortable;
    
     public function sortables(): array
    {
        return [
            'views_desc', // field in database  +  SQL ORDER BY Keyword
            
                 or
            
            'views_key' => [  // key any
                'views',  // field in database
                'ASC',   // SQL ORDER BY Keyword
            ],
        ];
    }

Use:

  • function sort()
<?php

namespace App\Http\Controllers;

use App\Models\Movie;

class MovieController extends Controller
{


    /**
     * @param  Request  $request
     * @return Application|Factory|View
     */
    public function index(Request $request)
    {
        $movies = Movie::sort()->paginate(12)
           
        return view('movies.index', compact('movies'));
    }
<select name="sort">
    <option value="views_desc" >@lang('Views Descending')</option>
    <option value="views_key" >@lang('Views Ascending')</option>
</select>