2013-08-02 2 views
1

Tree 동작을 사용하는 중첩 테이블이 있습니다. 나는 부모님과 한 수준 아래의 기록을 찾고 싶다.스레드 검색된 자식의 깊이 제한

나는 $this->Category->find('threaded');을 사용했지만 맨 위와 모든 하위 항목을 반환합니다.

스레드 레코드를 찾는 재귀의 깊이를 제한하는 방법이 있습니까?

답변

3

('스레드') 쿼리를 찾는 조건을 추가하여 결과를 제한 할 수 있습니다. 최상위 레코드 (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)', 
      ) 
     ) 
)); 
+1

+1은 케이크 상태에서 내부 'SELECT'를 수행하는 방법을 보여줍니다. – cgTag