PHP code example of 42phoenix42 / eloquent-sortable
1. Go to this page and download the library: Download 42phoenix42/eloquent-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/ */
42phoenix42 / eloquent-sortable example snippets
use Spatie\EloquentSortable\Sortable;
use Spatie\EloquentSortable\SortableTrait;
class MyModel extends Eloquent implements Sortable
{
use SortableTrait;
public $sortable = [
'order_column_name' => 'order_column',
'sort_when_creating' => true,
];
...
}
$myModel = new MyModel();
$myModel->save(); // order_column for this record will be set to 1
$myModel = new MyModel();
$myModel->save(); // order_column for this record will be set to 2
$myModel = new MyModel();
$myModel->save(); // order_column for this record will be set to 3
//the trait also provides the ordered query scope
$orderedRecords = MyModel::ordered()->get();
/**
* the record for model id 3 will have record_column value 1
* the record for model id 1 will have record_column value 2
* the record for model id 2 will have record_column value 3
*/
MyModel::setNewOrder([3,1,2]);
/**
* the record for model id 3 will have record_column value 11
* the record for model id 1 will have record_column value 12
* the record for model id 2 will have record_column value 13
*/
MyModel::setNewOrder([3,1,2], 10);
/**
* the record for model uuid '7a051131-d387-4276-bfda-e7c376099715' will have record_column value 1
* the record for model uuid '40324562-c7ca-4c69-8018-aff81bff8c95' will have record_column value 2
* the record for model uuid '5dc4d0f4-0c88-43a4-b293-7c7902a3cfd1' will have record_column value 3
*/
MyModel::setNewOrderByCustomColumn('uuid', [
'7a051131-d387-4276-bfda-e7c376099715',
'40324562-c7ca-4c69-8018-aff81bff8c95',
'5dc4d0f4-0c88-43a4-b293-7c7902a3cfd1'
]);
/**
* the record for model uuid '7a051131-d387-4276-bfda-e7c376099715' will have record_column value 10
* the record for model uuid '40324562-c7ca-4c69-8018-aff81bff8c95' will have record_column value 11
* the record for model uuid '5dc4d0f4-0c88-43a4-b293-7c7902a3cfd1' will have record_column value 12
*/
MyModel::setNewOrderByCustomColumn('uuid', [
'7a051131-d387-4276-bfda-e7c376099715',
'40324562-c7ca-4c69-8018-aff81bff8c95',
'5dc4d0f4-0c88-43a4-b293-7c7902a3cfd1'
], 10);