概要
バリデーションの結果エラーが発生した場合、$errorsにメッセージ群が格納され、ビュー側でそれを参照できる。
全てのエラー
$errors->all()
$errorsは単なるコレクションではなくIlluminate\Support\MessageBagのインスタンス。ビューですべてのメッセージを一つずつ取り出すには例えば以下の様に記述する。
| 1 2 3 | @foreach ($errors->all() as $error)   <p>{{ $error }}</p> @endforeach | 
たとえばフォームリクエストで以下のようなバリデーションルールを設定した場合。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | class ItemRequest extends FormRequest {     ........     public function rules()     {         return [             'name' => ['required'],             'price' => ['required', 'integer', 'min:0'],             'image' => ['file', 'mimes:jpeg,jpg,png',                         'dimensions:min_width=100,min_height=100,max_width=800,max_height=600'],         ];     } } | 
フォームで何も入力しないでPOSTすると、以下のエラーが表示される。
| 1 2 3 4 5 6 7 8 9 | 名前は必ず指定してください。 priceは必ず指定してください。 imageにはファイルを指定してください。 imageにはjpeg, jpg, pngタイプのファイルを指定してください。 imageの図形サイズが正しくありません。 | 
特定の項目のエラー
$errors->has('項目名')と$errors->first('項目名')
has()メソッドはフォームの入力項目名を指定して、それに対するエラーがあるかどうかを判定し、first()メソッドは入力項目に対するエラーのうち1つを得る。
これら2つを組み合わせて、特定項目のエラーを1つだけ表示させる例は以下の通り。
| 1 2 3 | @if ($errors->has('image'))   <p>{{ $errors->first('image') }}</p> @endif | 
先ほどの例では、imageの項目でファイルを選択しないと3つのエラーが表示されたが、この場合はそのうちの1つだけが表示される。
| 1 | imageにはファイルを指定してください。 | 
$errors->get('項目名')
get()メソッドは、指定した項目に関するすべてのエラーをコレクションで返す。先ほどの例で、imageに関するエラーだけを全て表示するには以下のように書く。
| 1 2 3 | @foreach ($errors->get('image') as $error)   <p>{{ $error }}</p> @endforeach | 
ファイルを選択せずにPOSTすると、imageに関するバリデーションエラーがすべて表示される。
| 1 2 3 4 5 | imageにはファイルを指定してください。 imageにはjpeg, jpg, pngタイプのファイルを指定してください。 imageの図形サイズが正しくありません。 |