PHP code example of ofcold / nova-sortable
1. Go to this page and download the library: Download ofcold/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/ */
ofcold / nova-sortable example snippets
$table->unsignedInteger('sort_order')->nullable();
use Ofcold\NovaSortable\SortableTrait;
class Entry extends Model
{
use SortableTrait;
}
class Example extends Resource
{
/**
* Build an "index" query for the given resource.
*
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @param \Illuminate\Database\Eloquent\Builder $query
*
* @return \Illuminate\Database\Eloquent\Builder
*/
public static function indexQuery(NovaRequest $request, $query)
{
$query->when(empty($request->get('orderBy')), function ($q) {
$q->getQuery()->orders = [];
return $q->orderBy(static::$model::orderColumnName());
});
return $query;
}
/**
* Prepare the resource for JSON serialization.
*
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @param \Illuminate\Support\Collection $fields
*
* @return array
*/
public function serializeForIndex(NovaRequest $request, $fields = null)
{
return array_merge(parent::serializeForIndex($request, $fields), [
'sortable' => true
]);
}
}
/*
* Determine the column name of the order column.
*/
public static function orderColumnName(): string
{
return 'your sort order column name';
}