В CakePHP, как вы выбираете только поддерево в модели, которое actsAs
дерево?Поиск поддерева в дереве CakePHP
Я попробовал это, чтобы найти дерево во главе пункта с label = "My Label"
$this->find("threaded", array(
"conditions" => array(
"label" => "My Label"
)
));
... Однако, глядя на журналы, он запускает этот SQL:
SELECT Menu.id, Menu.parent_id, Menu.lft, Menu.rght, Menu.label, Menu.link
FROM menus Menu
WHERE label = 'My Label'
который, очевидно, только выбирает один узел, а не все его дети.
Да, я закончил тем, что делал то же самое - кажется, смешно не включать эту функциональность в компонент. – nickf
Согласен, кажется очевидным прецедентом. Там '-> children()', но не '-> childrenThreaded()'. Я думаю, что вы, вероятно, можете сделать '$ model -> _ findThreaded ('after', null, $ model-> children ($ id))', если вы идете по id, но, похоже, это хакка , : o) – deceze
Спасибо за ответ, я также надеялся, что это будет более кратким, чем это. Кстати, если вам нужны только дети, вы должны использовать '' conditions '=> array (' Category.lft> '=> $ parent [' Category '] [' lft '],' Category.rght <' => $ parent [ 'Category'] ['rght']) ', чтобы не возвращать родителя. – bfncs