ja en ja en ja en en ja ja ja ja ja uk ja en ja en en ja ja ja ja ja ja en ja en ja uk ja ja ja ja ja ja ja ja ja ja ja ja ja ja en es en es pt ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja en ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja zh ja ja ja ja ja ja ja ru ja ja ja en
もちろん行が追加(save)されたときや削除(del)されたときも自動でよしなに振ってくれます。いやー便利ですね。
TreeBehavior
http://book.cakephp.org/view/1339/Tree
ツリー構造を管理するビヘイビアです。CakePHP本体に搭載されてます。
このビヘイビア、実装内容を知るまでは、「親IDを持たせて再帰する、遅そうなビヘイビアなんでしょ…?」と思ってたのですが、ところがどっこい、再帰不要なアルゴリズムを使用した実装でした。
この実装はピンとこないときは理解するのに苦しむのですが、理解してしまえば「はっはーーなるほどー、これならインデックスが効きやすくて、MySQLでも速いわこれ!」って思います。ってか思いました。
僕の知る限りで最もわかりやすい説明が「ウノウラボ by Zynga Japan: RDBで階層構造を扱うには?」ですので、実装内容を知りたい方は、読んでみてください。
で、肝心の使用例ですが、これもまたシンプルです。
ツリー要素の追加自体は、親IDを指定して保存するだけです。
$this->Model->save(array('name' => 'new record', 'parent_id' => $parent_id));
ある要素の子孫一覧を取り出したり。
$this->Model->children($id);
ツリー内の兄弟要素での順序も操作したり。(OrderedBehavior不要)
$this->Model->moveup($id);
他にも様々な形式で一覧を取り出せたりして、便利です。
ビヘイビアを沢山知っておくとコントローラやモデルのコードがかなりすっきりするので、CakePHPに慣れてきたらいろいろ物色してみるとよいです。ビヘイビア同士の相性問題もちらほらありますが、どれか1つ使うだけなら大抵うまく動作してくれますよ。
( このエントリはCakePHP Advent Calendar 2011の19日目の参加記事です。他の方の記事もぜひどうぞ )
カテゴリ:ホーム » ブログ » IT » プログラミング » CakePHPの「OrderedBehavior」と「TreeBehavior」はマジで使うべき
前の記事:iOS設定アプリショートカットアイコンサイトのまとめ
後の記事:Chrome拡張のSmooth Gesturesをインストールするとサイト内の広告が置き換えられてしまう
タグ: CakePHP, PHP, プログラミング, 記事
コメント / トラックバック
コメントは受け付けていません。
akiyan.com とは
個人サイト。管理人は秋田真宏。ニックネームは「akiyan」。
「今までの認識を覆(くつがえ)す、わかりやすい記事を書く」ことを目標にしているサイトです。話題の中心は生活とウェブ技術系です。
UberEATSの配達員をリリース当日にやってみた
iPhone の修理補償のためにAppleCare+や携行品保険に入ってはいけない
UR賃貸住宅が最強なことを惜しみなく紹介
あなたの知らない照明術
ためしてガッテンのカレー特集がすごい!
5泊5000円台の貸しふとんで、お客様用ふとんを持たない暮らし
ブログカテゴリ・月別一覧
エンターテイメント (199)
ビジネス・政治経済 (175)
生活・ライフスタイル (246)
2022-09-14 海岸や河川でバーベキューができるか調べる方法
2022-02-02 SequelizeでJSONフィールドをupdateする場合はsetメソッドを使う
2022-01-24 SwitchBotロックをSiriショートカットで「解錠」はできない
2022-01-04 テスラモデル3にTPMSセンサー無しで社外品ホイールとスタッドレスタイヤ を取り付けました
2022-01-01 サーフィンを始めました
2022-01-01 テスラモデル3ロングレンジに乗り換えたらアプデが楽しみになった
2021-12-29 歯列矯正を始めてからよく食べてるもの、完全食、フリーズドライお粥、豆腐 etc
2021-12-28 日光市ワーケーション補助金は最低1名から、申請はメールでOK
2021-11-19 2021年に買ってよかったもの
2021-08-12 自治体コロナワクチン予約は早朝チェックで最速で受けられる
akiyan.com 管理人メモ
自衛隊イラク日報 バグダッド日誌/バスラ日誌 一覧
エンコードマニアックス
オンラインCSS自動整形
はてなブックマーク人気エントリー
Copyright 1997,2022 akiyan.com, All rights reserved.