CakePHP find(‘threaded’)で条件指定

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'])
  )));
}

※親のlft, rghtは、子の最初と最後のidを指しているんだね。

以上です。

コメントを残す

役立つ
面白い

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください