Kenji Suzuki
kenji****@gmail*****
2010年 2月 20日 (土) 20:26:23 JST
Kenji です。 On Sat, 20 Feb 2010 13:43:54 +0900 ojimac <ojima****@gmail*****> wrote: > 質問の内容ですが、フォームのバリデーションをコントローラに書くのか、それともモデルに > 書くのかということです。 > > CodeIgniter徹底入門や、ユーザガイドを見ていますと、form_validationクラスを > 使って、コントローラ内でチェック用メソッドを作ってチェックしている事が多かったので、 > 特に疑問をもたずに、私もそのように書いていたのですが、先日のPHPフレームワーク勉強会で、 > フォームのバリデーションについて話していたところ、Cake,Symfonyはモデルに書くとのことでした。 CI では、ユーザガイドがそうなっていることもあり、コントローラに 書くのが一般的だと思います。 > その後ネットで調べたところでは、railsがフォームのバリデートをモデルに書くようなので、 > Cake, Symfonyもそのやり方に乗っかっているという事なのかな、という認識です。 > ただ、http://d.hatena.ne.jp/kikx/20070302#1172794293 のように、 > フォームのバリデートとデータの整合性のバリデートは分けて書くべきだ、といった意見も > あり、混乱している状態です。 本来、モデルはデータの整合性を保証する必要がありますので、モデルに バリデーションがある方が論理的にいいようにも思いますが、実際問題、 コントローラでバリデートして困ったことは私はありません。 モデルに書かないとデメリットがあるケースがあれば、教えていただけると いいんじゃないかと思います。 // Kenji