Treeで入れ子のスレッド配列を取るには、例えば下記の関数でOKです。
$this->(Model)->find('threaded');
条件を指定したいときはどうすればいいでしょうか?
結局’threaded’も、find検索なので一般的な条件指定と同じです。
例えば・・・(Categoryモデル内で関数を作る)
public function getCategoryThreaded() {
$parent = $this->find('first', array('conditions' => array('parent_id' => 3)));
$targetList = $this->find('threaded', array(
'conditions' => array(
'Category.lft BETWEEN ? AND ?' => array($parent['Category']['lft'], $parent['Category']['rght'])
)));
}
$parent = $this->find('first', array('conditions' => array('parent_id' => 3)));
$targetList = $this->find('threaded', array(
'conditions' => array(
'Category.lft BETWEEN ? AND ?' => array($parent['Category']['lft'], $parent['Category']['rght'])
)));
}
※親のlft, rghtは、子の最初と最後のidを指しているんだね。
以上です。