2012-03-16 8 views
1

これを行うCIの方法はコントローラのルールに対して検証することですが、これは究極のアプローチではないと私は思います。私のモデルが常に悪いデータから保護されるように、CIの方法に従うか、モデルの入ってくるデータを検証することを私に勧めますか? MVCの私の理解は、コントローラは、すべてのロジックをモデルに実装されている任意のプログラムのロジックを保持する必要はないということです。なぜ両方のアプローチが良いのではなく、どちらのアプローチが推奨されるのかを詳細に説明できるのであれば、私は感謝しますか?CodeIgniterでコントローラまたはモデルを検証する場所

乾杯

+2

可能重複:http://stackoverflow.com/questions/4568553/mvc-in-php-fat-model-or-fat-controller –

答えて

6

銀色の弾丸はありません。

モデルの検証によって、プログラムによる無効化の原因から保護されます。しかし、ユーザーはモデルに直接アクセスすることはできませんが、コントローラを介して、最終的にはフォームを通じてのみアクセスできます。ほとんどの場合、特定のフォームまたは特定のコントローラに固有で、モデルには不適切な追加検証が必要です。

これは、モデル外の検証層を主張します。理想的には、コントローラによって使用される個別の検証オブジェクト(特定のフォームに結び付けられている可能性があります)を作成することができます。コントローラー自体に追加の検証が必要な場合があります。

検証はバイナリではありません。バリデーションのレイヤーと、さまざまな状況で必要とされるさまざまなタイプのバリデーションがあります。モデルとコントローラの両方で検証が必要な場合があります。

関連する問題