yiiext / nested-set-behavior

AR models behavior that allows to work with nested sets tree.
http://www.yiiframework.com/extension/nestedsetbehavior/
BSD 3-Clause "New" or "Revised" License
157 stars 64 forks source link

Создание корня в пустой таблице #17

Closed kokovtsev closed 11 years ago

kokovtsev commented 11 years ago

При попытке создать корень при помощи следующего кода:

$root = new MResourceCatalog;
$root->title="Каталог";
$root->saveNode();

ничего не происходит. Проблема в том, что по умолчанию метод saveNode() вызывает валидацию модели ДО того, как заполняются поля leftAttribute, rightAttribute и levelAttribute, а в правилах модели они указаны как обязательные (что вполне логично).

creocoder commented 11 years ago

а в правилах модели они указаны как обязательные (что вполне логично)

Эти данные не требуют валидации, т.к. не поступают от пользователя, ими полностью управляет расширение. От результата валидации в данном случае не будет зависеть ничего, это просто бессмысленная проверка. Таким образом вполне логично что валидаторов для полей leftAttribute, rightAttribute и levelAttribute быть НЕ должно.

creocoder commented 11 years ago

А вообще в документации четко написано по этому поводу:

There is no need to validate fields specified in leftAttribute, rightAttribute, rootAttribute and levelAttribute options. Moreover, there could be problems if there are validation rules for these. Please check if there are no rules for fields mentioned in model's rules() method.