Tech memo

日々学んだ技術のびぼうろく

Laravel5.4 FormRequest でバリデーションエラーメッセージを名前付きにする方法

はじめに

1ページに複数のフォームがあるとき (サイドバーにログインフォーム、メインコンテンツにユーザ登録フォームがある場合)
とかに名前付きエラーバグ (Named Error Bags) と使うと
View 側で出力するエラーメッセージのアクセスを切り替えることができる。
便利。

でもFromRequest を使った場合の名前付きエラーバグのやり方が見つからなかったので記録しておく。

スポンサーリンク

FormRequestを使ったときのバリデーションの名前付きエラーバグの方法

UserRequest クラスがあったとする。

UserRequestに

protected $errorBag = 'user';

を追加だけ。 View からは

$errors->user->all()

でアクセスできるようになる。

注意

View からアクセスするとき、

$errors->all()

は空になる。

バリデーションのエラーメッセージ出力を

@if ($errors->all()) 
・・・
@endif

で行なっている場合は、

@if ($errors->user->all())
・・・
@endif

と修正しないとバリデーションメッセージが表示されなくなる。

まとめ

簡単にできた。

参考

スポンサーリンク