2016-10-31 6 views
0

私はthe laravel documentationを読んでいると、Webサーバは、モバイルユーザーにデスクトップユーザー、およびAPIインタフェースにウェブインターフェースを提供する場合は、検証laravelがEloquentモデルの代わりにコントローラで検証を定義するのはなぜですか?

に関するいくつかの疑問があり、問題がある:それは、APIコントローラに二回の検証を定義しますとWebコントローラ、それは重複しています。

と大規模なプロジェクトを開発するために、別の共同開発者がある場合、彼は以前、開発者定義された検証を知っているべきで、それは私がそれは同じ場所に検証ロジックを定義するべきだと思い

共同開発のためによくないです、 ActiveRecord in Railsのように

答えて

1

Requestsフォルダにリクエストファイルを作成し、このファイルをコントローラメソッドに挿入すると、リクエストが自動的に検証されます。引き続きLaravel検証文書hereをお読みください。この方法は丁寧にわかります。

+0

ありがとう、慎重に読んでいただきありがとうございます – TangMonk

1

「getValidator」のようなモデルにメソッドを追加すると、バリデータが得られます。コントローラには、これを問い合わせるだけです。

しかし、ほとんどの場合、(ユーザー)入力からの入力を検証する必要があります。複数のモデルや複雑な関係に適用する必要がある入力を想像してみてください。バリデーションが実際に/ 1つのモデルの一部であると言うのは奇妙です。最終的に入力を検証するだけなので、コントローラに入力が必要です。

あなたのケースで抽象化を行うより良い方法は、あなたのAPIに接続するアプリ「web」の部分もと解釈することです。そして、APIをバックエンドとやりとりするための唯一の方法であるようにして、検証を1つの場所(API)で行うことができます。

最後に、どのように構造化するかはあなた次第です。

関連する問題