私はコハナを使用していますが、この質問はより一般的だと思います。
コントローラーでフォームの検証を行ってきましたが、これまでのところうまくいきました。しかし、最近、私は問題に遭遇しました。
コメント モデルがあり、いくつかの異なるコントローラーからコメントを送信します。すべてのコントローラーにバリデーターを配置する代わりに、モデルに配置しました。
これは素晴らしいので
- 検証ルールを変更/追加する場所は 1 か所のみ (DRY)
これは最悪だから
- コントローラーに成功または失敗を返す必要があることは明らかで、Kohana の検証ライブラリはエラーを配列として返します。だから私のリターンはこのようになります
成功について
array('success' => true);
失敗した場合
array('success' => false, $errors);
これは間違っていると思わざるを得ません。それは間違っていると感じます。
コントローラーでそれを行うと、簡単に行うことができます
if ($post->validate()) {
doWhatever();
} else {
$this->template->formErrors = $post->errors('form_errors');
}
どちらが良いようです(私には)。
これを行うより良い方法はありますか?コントローラーまたはメソッドで検証する必要がありますか? 私は夢中になっていますか?