2015-05-23 3 views
5

Используя symfony2 и doctrine2 с расширением дерева доктрины, я недавно обновил объект, чтобы сделать его вложенным деревом множеств.Как восстановить корневые узлы

Сила обновления схемы доктрины добавила правильные столбцы с нулевыми данными.

Тогда я побежал следующий код:

 $repo = $this->getDoctrine()->getRepository('AppBundle:FoodAnalytics\Recipe'); 

     $repo->verify(); 
// can return TRUE if tree is valid, or array of errors found on tree 
     $repo->recover(); 
     $this->flush(); // important: flush recovered nodes 
// if tree has errors it will try to fix all tree 

Он успешно выздоровел левый правый и уровень значения, но не корень. Я не могу вручную установить корневые значения (запрещено прослушивателем доктрины).

Как я могу обновить эти корневые значения, чтобы дерево могло работать правильно?

Спасибо!

ответ

-1

Ну, я не нашел объектно-ориентированного решения, поэтому я пошел на необработанный SQL-запрос. Я делаю это до того, как какой-либо объект получит родителя, поэтому корневое значение каждой сущности должно быть равно его собственному id.

В PHPMyAdmin, вставьте следующий SQL запрос и выполнить:

update recipe 
set recipe.root = recipe.id 
Смежные вопросы