1. Go to this page and download the library: Download outl1ne/nova-sortable library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
outl1ne / nova-sortable example snippets
// Add order column to the model
Schema::table('some_model', function (Blueprint $table) {
$table->integer('sort_order');
});
// Set default sort order (just copy ID to sort order)
DB::statement('UPDATE some_model SET sort_order = id');
use Spatie\EloquentSortable\Sortable;
use Spatie\EloquentSortable\SortableTrait;
class SomeModel extends Eloquent implements Sortable
{
use SortableTrait;
public $sortable = [
'order_column_name' => 'sort_order',
'sort_when_creating' => true,
];
...
}
use Outl1ne\NovaSortable\Traits\HasSortableRows;
class MyResource extends Resource
{
use HasSortableRows;
...
}
public static function canSort(NovaRequest $request, $resource)
{
// Do whatever here, ie:
// return user()->isAdmin();
// return $resource->id !== 5;
return true;
}
class Artist extends Resource
{
use HasSortableRows;
public static $sortableCacheEnabled = false;
}
class SomeModel extends Eloquent implements Sortable
{
use SortableTrait;
public $sortable = [
'order_column_name' => 'sort_order',
'sort_when_creating' => true,
'nova_order_by' => 'DESC',
];
...
}
class SomeModel extends Eloquent implements Sortable
{
use SortableTrait;
public $sortable = [
'order_column_name' => 'sort_order',
'sort_when_creating' => true,
'ignore_policies' => true,
];
...
}
return [
// Spatie sortable configuration
/**
* Add sort on has many in all the models.
**/
'sort_on_has_many' => true,
];
use HasSortableRows {
indexQuery as indexSortableQuery;
}
public static function indexQuery(NovaRequest $request, $query)
{
// Do whatever with the query
// ie $query->withCount(['children', 'descendants', 'modules']);
return parent::indexQuery($request, static::indexSortableQuery($request, $query));
}