限制线程查找的子项的深度

时间:2013-08-02 20:57:27

标签: cakephp cakephp-2.0

我有一个使用Tree行为的嵌套表。我想找到最高父母和一个级别的记录。

我一直在使用$this->Category->find('threaded');,但它会返回顶部和所有孩子。

有没有办法限制查找线程记录的递归深度?

1 个答案:

答案 0 :(得分:3)

我们可以通过添加查找('threaded')查询的条件来限制结果。我们要么需要顶级记录(parent_id = NULL),要么记录parent_id是顶级记录的记录。

$this->Model->find('threaded', array(
        'conditions' => array(
            'OR' => array(
                'parent_id' => NULL,
                'parent_id IN (SELECT id from your_table_here WHERE parent_id IS NULL)',
            )
        )
));