Прежде всего, вам не нужно использовать nestable
, так как мы не имеем дело с trees
, и, кажется, это руководство, но оно краткое.
Мы можем быть просто счастливы с \October\Rain\Database\Traits\Sortable
для сортировки только потому, что нам не нужно tree
, мы можем пропустить добавление этих
use \October\Rain\Database\Traits\NestedTree;
parent_id, nest_left, nest_right, nest_depth
, вам нужно конкретное имя столбца sort_order
, если мы используем trait
, но мы можем изменить это, если нам нужно, определивconst SORT_ORDER = 'my_sort_order';
в нашем model
.
Поскольку вы уже создали таблицы, вы можете update your table definition using builder plugin
и добавить поле sort_order
к вашей таблице.
или вручную, вы можете использоватьэтот скрипт и добавьте его в version.yaml
файл [plugins \ hardiksatasiya \ demotest \ updates (соответственно в вашем плагине)] *
version.yaml
1.0.19:
- 'Updated table hardiksatasiya_demotest_sorting'
- builder_table_update_hardiksatasiya_demotest_sorting_3.php
builder_table_update_hardiksatasiya_demotest_sorting.php
<?php namespace HardikSatasiya\DemoTest\Updates;
use Schema;
use October\Rain\Database\Updates\Migration;
class BuilderTableUpdateHardiksatasiyaDemotestSorting extends Migration
{
public function up()
{
Schema::table('hardiksatasiya_demotest_sorting', function($table)
{
$table->integer('sort_order')->default(0)->change();
});
}
public function down()
{
Schema::table('hardiksatasiya_demotest_sorting', function($table)
{
$table->integer('sort_order')->default(null)->change();
});
}
}
Теперь добавьте Trait для вашей модели
<?php namespace HardikSatasiya\DemoTest\Models;
use Model;
/**
* Model
*/
class Sort extends Model
{
use \October\Rain\Database\Traits\Validation;
use \October\Rain\Database\Traits\Sortable;
....
Теперь либо вы можете добавить вручную всенеобходимые файлы или используйте для этого инструмент для сборки.
Я предпочитаю использовать Builder для добавления контроллера и необходимых файлов.le
Убедитесь, что вы отметили Reorder behavior
Чтобы отобразить имя в списке переупорядочениянам нужно установить это свойство from which field we need to derive a name
для отображения в списке сортировки.
Это будет выглядеть так с name
как имя атрибута сортировки
Боковое меню [plugin.yaml и контроллеры]
Если у вас есть дополнительные сомнения, пожалуйста, прокомментируйте.