Кажется, что код, который вы предоставили, не является уникальным для обоих 3.x и 2.x, поэтому я поделюсь решениями для каждого.
3.x
Вы можете получить плоский список всех потомков узла дерева, передавая «детей» как тип искателя в вашем запросе:
$result = $this->Test->find('children', array(
'for' => $record_id, // Notice you have to specify 'for' key!
'fields' => array('id', 'parent_id', 'name'),
'order' => array('lft ASC')
));
Если у вас чтобы найти только прямые дети вашего узла, проходят в верно и для «прямой» ключ в массиве параметров:
$result = $this->Test->find('children', array(
'for' => $record_id, // Notice you have to specify 'for' key!
'fields' => array('id', 'parent_id', 'name'),
'order' => array('lft ASC'),
'direct' => true
));
Дополнительная информация:
3.x Cookbook for TreeBehavior
3.x findChildren() defined in API
3.x API Info for findChildren()
2.x
Чтобы получить плоский список всех потомков в 2.x, вы использовать -> дети (функции) предоставленный классом TreeBehavior:
$result = $this->Test->children(
$record_id, // ID of record to find children for
false, // Direct = false
['id', 'parent_id', 'name'], // Fields to include in query
'lft ASC' // Order
)
С другой стороны, найти прямых потомков только, вы бы пройти во второй аргумент как истинный:
$result = $this->Test->children(
$record_id, // ID of record to find children for
true, // Direct = true
['id', 'parent_id', 'name'], // Fields to include in query
'lft ASC' // Order
)
Дополнительная информация:
2.x Cookbook for TreeBehavior
2.x children() defined in API
2.x API Info for children()
T он CakePHP TreeBehavior делает большую работу по абстрагированию от множества проблем с работой с данными Tree. Я надеюсь, что эта информация поможет!
Какая версия торта? Не могли бы вы показать пример поискового запроса, который вы используете, и как вы хотите, чтобы результаты выглядели. – drmonkeyninja
обновил мой вопрос. –
Не могли бы вы привести пример того, как вы хотите, чтобы ваш массив результатов выглядел? Вы просто хотите плоский массив с детьми на той же глубине, что и родители? – drmonkeyninja