2016-04-17 14 views
2

にFormRequest :: formatErrorsに適合するものでなければならない、私はこのようなStoreCourseRequestクラスを作成しました上記のコードのように、エラーメッセージの形式をカスタマイズします。宣言がlaravelで<a href="https://laravel.com/docs/5.0/validation#form-request-validation" rel="nofollow">Form Request Validation</a>を使用するためにlaravel

しかし、要求を送信した後、以下のエラーが発生している:

ErrorException in StoreCourseRequest.php line 9: 
Declaration of App\Http\Requests\StoreCourseRequest::formatErrors() should be compatible with Illuminate\Foundation\Http\FormRequest::formatErrors(Illuminate\Contracts\Validation\Validator $validator) 

私はすべての物事が右であることを考えるとformrequestクラスを作成するには、ドキュメントの指示に従ってくださいしかし、私はそのエラーが何であるかを知っているのはなぜ発生しませんか?

答えて

3

変更するには、ファイルの先頭へエラーメッセージ、FormRequest::formatErrors()方法はIlluminate\Contracts\Validation\Validatorのインスタンスであることを$validatorのparamが必要ですが、あなたはdrndavi @use Illuminate\Validation\Validator;

+0

感謝を輸入している、あなたのソリューションは正しかったが、どのように私は戻っ 'ステータスコードに変更することができます:AjaxフォームでOK 200''に422処理不能Entity'をリクエスト –

+0

あなたがその応答を受け取った場合、提出されたデータは、要件を満たしていないとしてバリデーターによって捕らえられているでしょうし、その応答をフロントエンドで処理する必要があります –

+0

私はStoreCourseRequestクラスへのレスポンスメソッドを次のように追加しました: 'public function response(array $ errors) \t \t { \t \t \tリターンレスポンス() - > json($ errors、200); \t \t} ' –

1

エラーメッセージには、メソッドformatErrorsの宣言が、オーバーライドしようとしている親クラスの宣言と互換性がないと記載されています。

エイリアシングIlluminate\Validation\ValidatorValidatorですが、このメソッドではタイプIlluminate\Contracts\Validation\Validatorのバリデータが必要です。インポートしたValidatorクラスを変更してみてください。したがって

、チェンジ・ライン〜4から:あなたが見ることができるように

namespace App\Http\Requests; 

    use App\Http\Requests\Request; 
    use Illuminate\Contracts\Validation\Validator; 

use Illuminate\Validation\Validator;

use Illuminate\Contracts\Validation\Validator;

関連する問題

 関連する問題