12

ValidatorLaravel 4でモデルを検証する公式の方法のようControllerです. 誰かがなぜそうなのか指摘できますか?

でバリデーションを実装する方が理にかなっていると思いませんModelか?

4

4 に答える 4

0

モデル内検証を好む理由: 私は両方のスタイルを使用してきましたが、それぞれに長所と短所がありますが、モデル内検証を好みます。現在のアプリでは、非常に多くの場所 (専用フォーム、インライン編集、一括編集、一括アップロード、API など) でデータを変更しているため、コントローラー内検証はオプションとして表示されません。私は検証サービスを実際に使用したことはありませんが (オプションの可能性はありますが)、個人的にはロジックをできるだけモデルに近づけたいと思っています。また、MVC および基本的な Libraries フォルダーの上に多くの余分なファイルを追加するのも好きではありません。

モデル内検証に関する問題: これらは、モデル内をうまく機能させるために考慮する必要があるいくつかの事柄です。これらのいくつかは、すでにプラグインによって考慮されています。他のフレームワーク (CakePHP) は既にこれらに対応していると思いますが、Laravel は実際には対応していません。

  1. 検証されるがデータベースに保存されない値 (例: "accepted_agreement")。
  2. 多対多または多関係に属する
  3. 条件付きデフォルトの設定 (重要ではありませんが、同時に検討する必要があるかもしれません)
  4. さまざまなフォーム シナリオ - 送信するフォームに応じて、異なる検証が必要になる場合があります。フォーム参照は、検証のためのパージ可能な属性になる可能性がありますか?
  5. どのようにしてエラー メッセージを取得しますか (すべてのモデル内検証プラグインがこれを処理します)
  6. さまざまな検証ルールセット。ドラフトの作成と「実際の」作成。(ほとんどの場合、これを処理します)

最終的に、モデルとやり取りする方法があまりない単純なアプリケーションの場合、コントローラーの検証はより単純かもしれませんが、それ以外はモデル内を好みます。

于 2016-06-28T13:55:31.357 に答える