En CakePHP, ¿cómo se selecciona solo un subárbol en un modelo que actsAs
árbol?Encontrar un subárbol en un árbol CakePHP
yo probamos este, para encontrar el árbol encabezada por el artículo con label = "My Label"
$this->find("threaded", array(
"conditions" => array(
"label" => "My Label"
)
));
... sin embargo mirar los registros, se ejecuta este SQL:
SELECT Menu.id, Menu.parent_id, Menu.lft, Menu.rght, Menu.label, Menu.link
FROM menus Menu
WHERE label = 'My Label'
que, evidentemente, sólo selecciona el único nodo, y no todos sus hijos.
Sí, terminé haciendo exactamente lo mismo, parece gracioso no haber incluido esta funcionalidad en el componente. – nickf
Estoy de acuerdo, parece un caso de uso obvio. Hay '-> hijos()', pero no '-> childrenThreaded()'. Buscando en la clase de modelo estoy pensando que podrías hacer '$ model -> _ findThreaded ('after', null, $ model-> children ($ id))' si vas por id, pero parece un poco hacky . : o) – deceze
Gracias por la respuesta, también esperaba una manera que sea más concisa que esta. Por cierto, si solo quieres los hijos, debes usar ''conditions' => array ('Category.lft>' => $ parent ['Category'] ['lft'], 'Category.rght <' => $ parent [ 'Categoría'] ['rght']) 'para no recuperar el elemento primario nuevamente. – bfncs