Laravel – バリデーションエラー

概要

バリデーションの結果エラーが発生した場合、$errorsにメッセージ群が格納され、ビュー側でそれを参照できる。

全てのエラー

$errors->all()

$errorsは単なるコレクションではなくIlluminate\Support\MessageBagのインスタンス。ビューですべてのメッセージを一つずつ取り出すには例えば以下の様に記述する。

たとえばフォームリクエストで以下のようなバリデーションルールを設定した場合。

フォームで何も入力しないでPOSTすると、以下のエラーが表示される。

特定の項目のエラー

$errors->has('項目名')$errors->first('項目名')

has()メソッドはフォームの入力項目名を指定して、それに対するエラーがあるかどうかを判定し、first()メソッドは入力項目に対するエラーのうち1つを得る。

これら2つを組み合わせて、特定項目のエラーを1つだけ表示させる例は以下の通り。

先ほどの例では、imageの項目でファイルを選択しないと3つのエラーが表示されたが、この場合はそのうちの1つだけが表示される。

$errors->get('項目名')

get()メソッドは、指定した項目に関するすべてのエラーをコレクションで返す。先ほどの例で、imageに関するエラーだけを全て表示するには以下のように書く。

ファイルを選択せずにPOSTすると、imageに関するバリデーションエラーがすべて表示される。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です