Как-то наткнулся на это https://github.com/yiiext/nested-set-behavior/issues/32 . Увидел, что человек уже 4 месяца ждёт ответа и решил разобраться.
Оказалось, что, если вы прикрепляете бехивёр через attachBehavior в контроллере,
$model->attachBehavior(
'nestedSetBehavior',
array(
'class' => 'application.behaviors.NestedSetBehavior',
'leftAttribute' => 'lft',
'rightAttribute' => 'rgt',
'levelAttribute' => 'level',
'hasManyRoots' => true,
)
);
То, бехивёр нужно прикреплять ко всем экземпляром моделей с которыми вы работаете, т.к. при прикреплении бехивёр прописывает свои свойства внутри экземпляра модели. Например, на гитхабе некий ptheofan решил, скорее всего, вставить новую запись как дочернию, т.е. родительская запись у него уже существовала. И он получил ошибку, т.к. для вставки как дочерний элемент нужно выполнить
$model->appendTo($model->findByPk($id));
а как известно, если кто внимательно изучил код, должен знать, что перед тем как вставить происходят ряд проверок. И одна из них как раз связана с свойством $_deleted получаемым через метод getIsDeletedRecord(). Поэтому товарищ ptheofan и получил Exception.