PHP доктрина ORM NestedSet - PullRequest
       13

PHP доктрина ORM NestedSet

0 голосов
/ 14 марта 2010

хотя я прочитал руководство здесь: http://www.doctrine -project.org / документация / ручной / 1_2 / Hu / иерархическое-данные Я не мог найти способ переместить узел из листа, чтобы стать корневым узлом. Есть какие-нибудь подсказки? Вопрос является простым для вставки нового узла ... но как насчет обновления узла?

Ответы [ 2 ]

0 голосов
/ 28 июля 2012

Как сказал Крозин, используйте Doctrine_Node_NestedSet::makeRoot(), но используйте идентификатор элемента вместо вычисления максимального значения root_id.

root_id - это идентификатор корневого узла

$item->getNode()->makeRoot($item->id);

Нет необходимости вычислять значение root_id. Присвоение идентификатора элемента не создает никаких конфликтов и является способом, которым Doctrine обрабатывает это внутренне.

0 голосов
/ 10 апреля 2010

Использовать Doctrine_Node_NestedSet :: makeRoot () примерно так:

$item->getNode()->makeRoot($maxRootValue + 1);

Вам нужно передать новое значение root_id, и один из самых простых способов сделать это - выбрать MAX(root_id) из таблицы и увеличить его значение.

...