ElisDN / yii2-demo-shop

Source code for Yii2 workshop
https://elisdn.ru/yii2-shop
Other
154 stars 113 forks source link

[page & shop category] Исключение при попытке выбрать родительским элементом самого себя #28

Closed the-toxic closed 4 years ago

the-toxic commented 6 years ago

До конца курса еще не дошел, но уже столкнулся с этой проблемой в 2х разделах, где реализован вложенный список через nested-set-behavior

Страницы: /page/update?id=1 /shop/category/update?id=1

Файлы: /backend/views/page/_form.php /backend/views/shop/category/_form.php

Речь идет о селекте parentId

Решил исправить проблему повесив на option атрибут disabled. В методе dropDownList() есть опция, позволяющая это сделать нативно.

<?= $form->field($model, 'parentId')->dropDownList( $model->parentsList(), ['options' => [Yii::$app->request->get('id') => ['disabled' => true]]] ) ?>

Дмитрий, если есть более изящное решение - подскажите. Пока только изучаю фреймворк.

ElisDN commented 4 years ago

Тогда уж так:

['options' => [$model->id => ['disabled' => true]]]

А вообще чтобы можно из parentsList() возвращать все элементы кроме своих дочерних по lft < $model->lft OR rgt > $model->rgt.