Добрый день! Yii начал изучать совсем недавно, если что.
У меня есть БД с NESTED SETS. Дерево однорутовое, сам рут я внёс вручную. Предполагается, что пользователь будет вносить вложенные каталоги самостоятельно. По моему разумению - так:
Жмем Создать, попадаем на create_var, выбираем, что именно создаем (каталог первого, второго или третьего уровня), перенаправление на create, откуда, в соответствии с выбранным уровнем, происходит перенаправление на _form_lvl1 (к примеру). Форма отображает textField для передачи названия каталога. Соответственно контроллер передает название в экземпляр модели, который создает новую запись в таблице. Я переопределяю метод beforeSafe для обновления ключей существующего дерева и добавления нового узла
$sqlUpdate = "update spisok set rgt = rgt + 2, lft = if(lft>:rgt, lft + 2, lft) where rgt >= :rgt" ;
//:rgt - здесь плейсхолдер, который нужно заменить значением rgt ключа родительского узла
$parametersUpdate = array(":rgt" => spisok::model() -> findByPk($id) -> rgt);// <- вот сюда должно передаться значение родительского правого ключа
Yii::app()->db->createCommand($sqlUpdate)->execute($parametersUpdate);
Остаётся вытащить id родительского каталога при создании нового и передать его в модель. Вот с этим у меня проблемы. Я не соображу, как мне вытащить id даже из рута дерева (id=1 lvl=0 lft=1 rgt=2).
Буду признателен за любой конструктивный совет по теме.