Изменение порядка отображения записей как пустых - PullRequest
0 голосов
/ 07 июня 2018

Я использую OctoberCMS , Apache и PHP7.

Я создал собственный плагин с помощью Builder.

Я могу добавлять записи, всеработает хорошо.За исключением случаев, когда я нажимаю кнопку Reorder records, отображается список пустых записей.


Существует ли руководство по настройке этого параметра?

Я смотрю на:
https://octobercms.com/docs/database/traits#nested-tree https://octobercms.com/docs/api/october/rain/database/traits/nestedtree

Я добавил в модель:

use \October\Rain\Database\Traits\NestedTree;

И к столбцам базы данных:

parent_id, nest_left, nest_right, nest_depth.


Куда я положу $table->integer('parent_id')->nullable();?

Если я добавлю его в модель, он выдаст ошибку Parse error: syntax error, unexpected '$table' (T_VARIABLE), expecting function (T_FUNCTION).


Записи

Reorder Records Button


Изменение порядка записей: пустой список

Empty Records

1 Ответ

0 голосов
/ 07 июня 2018

Прежде всего, вам не нужно использовать 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

enter image description here

Чтобы отобразить имя в списке переупорядочениянам нужно установить это свойство from which field we need to derive a name для отображения в списке сортировки.

enter image description here

Это будет выглядеть так с name как имя атрибута сортировки

enter image description here

Боковое меню [plugin.yaml и контроллеры]

enter image description here

enter image description here

Если у вас есть дополнительные сомнения, пожалуйста, прокомментируйте.

...