Containableビヘイビアをご存知でしょうか?
もし、使用していならばこれを機にぜひ導入してみてください。
注: 以下の公式ページの情報は現在はありません。また、ContainableBehaviorはCakePHP 3.0で削除されました。
公式ページによると
ContainableBehavior は CakePHP のコアの新機能です。このビヘイビアは find を実行するときに関連したモデルを選別したり限定したりするために使用します。コンテイナブル(Containable)は、データベース中の不要なものを削減し、アプリケーションの速度やパフォーマンスを改善します。このクラスを使うと、ユーザに対するデータの検索とフィルタを、美しく一貫した方法で行うこともできます。
と、魅力的に説明されています。
使用方法や動作は、公式ページをみるのが手っ取り早いので割愛しますm(_ _)m
#ググってください
このビヘイビアのメリットはたくさんあるのですが、特に便利だと思う点が
- recursiveやbindModelやunbindModelの記述がなくなって、ソースコードがきれいでわかりやすくなる
- あとで関連を選別できるからモデルの関連をモリモリの最大で書いておくことができる
の2点で、とにかく便利です。
さらに以下のサンプルのようにモデルのrecursiveのデフォルト値を-1としておけば、何をcontainすればいいのか、しているのかがソースコードからわかりやすくなってお勧めです。
class UserModel extends AppModel { public $recursive = -1; public $actsAs = array('Containable'); }