Дерево или NestedSet

Всем привет!

Я так понял в AR нет поддержки nestedSet, типа как он есть в Propel 1.3 и Doctrine

А может кто нибудь уже писал behavior для работы с деревьями???

есть у меня обработка дерева. но наверно спецефична и

заточена сугубо под меня

эээ… а чуть поподробней можно?

Я просто думаю, может имеет смысл взяться и портировать в YII аналог работы с деревьями как сделано в Propel 1.3, хотя бы самый необходимый минимум

  • retrieveTree

  • setScopeId

  • insertAsLastChildOf

etc…

извини, я не разбираюсь в твоей терминологии.

для работы с деревом меню использую свою

наработку. мне вполне хватает. гляди картинку

:) я говорю об организации БД и о методах по работе с деревом.

Отображение (в твоем примере) это уже вторично.

Самый простой способ организовать дерево - добавить поле parent_id и рекурсией "раскручивать" дерево. Этот метод прост но очень медленен.

Вот немного теории по альтернативной работе с деревьями, такой функционал хочется видеть в YII

http://propel.phpdb…/Tree/NestedSet

http://www.sitepoint…-data-database/

Интересно :)

Я всегда "тупо" делал. Статья на сайтпоинте попадалась, но я особо не вникал. Прикольно. Ну тут по ходу надо расширять класс ActiveRecord, по-другому никак. Как может помочь поведение я не сзнаю, оно ж на события реагирует.

Одним запросом получить ветку дерева соблазнительно, не правда ли? ;)

Ну всякие "вкусности" по работе с деревом типа "если ли детки?", "есть ли соседи?" итп, думаю тоже не лишние.

Дело в том что в Симфони есть плагин, содержащий behavior, реализующий такую работу с деревьями

http://www.symfony-p…tbehaviorPlugin

Вот он как раз раз срабатывает при сохранении записи и делает если надо смешение записи в дереве.

Надеюсь найду время попробовать сделать что то такое в YII