CakePHP

CakePHP DBからTree(ツリー)構造でSELECT

メモとして。。。

CskePHPではDBに保存されているデータをツリー構造で取得することが可能です。
PHPコードを普通に記述するのは面倒な作業なのに、CakePHPでは基本1行で済んでしまいます(笑)

さて実際の記述は。。。

$this->モデル名->find('threaded');

たったこれだけです。簡単ですね(笑
ちなみにデータベース上にはどのデータが親なのかを「parent_id」で紐付けしておく必要があります。

上記のコードで?と思う方、お気づきでしょうか?
はい、通常の「find」の利用では「threaded」の部分には条件指定の配列を入れます。
このコードでは条件指定はできず、動作してくれませんorz

この問題を解消するには。。。
って複雑ではありませんし、実はCakePHPではちゃんと用意されています(汗

通常「find」の第2引数は「field」を指定するのですが、この指定を工夫します。
例えば条件を指定する場合は次のような形です。

$field['conditions']['AND']~

この「conditions」がCakePHPでは自動で、第1引数に置き換えてくれます。
これで条件指定があるTree(ツリー)構造も簡単にできますね(笑

コメント