質問: Validator::make ( $request -> all(), [ 'name' => 'required', 'age' => 'integer', ]); if($validator -> fails()) { return redirect('view/path') -> withErrors($validator) -> withInput(); } ``` という理解で大丈夫でしょうか? 2. withInput() 上記のvalidationファサードのwithInputは何をしているのでしょうか? withInput()とwithErrosは順番がサイトによって違っていました。順番が逆でも違いはないのでしょうか? 3. エラーメッセージの行方 Laravel公式には > > Laravelは自動的にユーザーを以前のページヘリダイレクトします。付け加えて、バリデーションエラーは全部自動的にフラッシュデータとしてセッションへ保存されます。 > > > とあるのですが、chromeのデベロッパーツールのApplication->Session Storageを開いたままvalidationエラーを発生させて見たのですが、viewには表示されたのですがSession Storageには何も表示されませんでした。 私の見方が違っているのでしょうか、、?
回答: > > requestクラスのvalidateメソッドとValidateファサードの違い > > > ご自身で書いておられるようにメソッドとファサードの違いではないでしょうか。 単にどちらでもvalidationが実装できるというだけで、requestインスタンス内でバリデーションを行うのか、ファサードとしてコントローラー上などで使用するかの違いかと思います。 もっというと、リクエストのvalidateメソッドは、リクエストクラスを継承して作成したクラス内でruleとして定義し、バリデーション部分をリクエストに持たせることができます。 > > 2. withInput() > > > 読んで字の如く、入力(リクエストで送信された)データをリダイレクト先にも付与しています。 withErrorsはエラー(メッセージなど)をリダイレクト先に付与するものです。 > > 3. エラーメッセージの行方 > > > これは私もまだ勉強不足なのですが... Laravel公式によると、PHPのデフォルトセッションとは異なる仕組みで動いている感じです。 デフォルトでは「file」セッションドライバーを利用しているようなのので 「storage/framework/sessions」あたりをみてみる