CakePHP コントローラに処理を書かずにモデルにメソッドを追加しよう!
CakePHP だけではなくフレームワーク全般に当てはまることだと思います。
Fat models and how they change how you use the Model class – cakebaker
私もフレームワークを使い始めた当初はそうだったのですが、モデルに最初からあるメソッドだけを使用してコントローラでなんでもかんでもやってしまっていました。
そうではなく、もっとモデルにオリジナルのメソッドを追加して、コントローラではそれを使用した方がコントローラもすっきりして後から見たときにも何をしているか分かりやすいと思います。
例えばブログの最新エントリ10を find する場合コントローラに
$this->Post->findAll(array('Post.is_published' => true), null, array('Post.published DESC'), 10);
と書くよりも
Postモデル
function findMostRecent($limit = 10) { return $this->findAll(array('Post.is_published' => true), null, array('Post.published DESC'), $limit); }
コントローラ
$this->Post->findMostRecent();
と書いた方がコメントなどなくても何をしているのかが分かりやすくなります。
関連する投稿
2 comments
コメントをどうぞ
Additional comments powered by BackType
[...] 実際にはモデルからコントローラーに値を渡すというよりは、コントローラーでモデルから値を取り出すと言う感じですね。CakePHP コントローラに処理を書かずにモデルにメソッドを追加しよう! | Su… がとても分かりやすいのでそのまま引用します。 [...]
[...] [参考サイト] CakePHP コントローラに処理を書かずにモデルにメソッドを追加しよう! | Su… [...]