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
と修正しないとバリデーションメッセージが表示されなくなる。
まとめ
簡単にできた。
参考
スポンサーリンク
一から整理するクッキーとセッション
はじめに
クッキーとセッションっていっつもこんがってよくわかんなくなる。
で、いざ使おうとした時に毎回調べて納得してまた忘れる…の繰り返しなので
もう忘れないようにメモしておくことにした。
目次
スポンサーリンク
クッキー
- WebサーバがHTTP ヘッダーに格納するデータ
- クライアントのブラウザに保存される
- よく保存されるデータ
- 利用者の識別や属性に関する情報
- 利用者が最後に訪れた日時
- 保存しない方がいいデータ
- ログイン情報などの改ざんされてはいけないデータ
クッキーはクライアント側に保存するデータのため、 容易に改ざんできてしまう。
そのため、ログイン情報など改ざんされてはいけないデータはクッキーではなくセッションを使う。
▼Request Header :authority:webtools.yjhm214.com :method:GET :path:/ :scheme:https accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 accept-encoding:gzip, deflate, sdch, br accept-language:ja,en-US;q=0.8,en;q=0.6 cookie:XXX=xxx ← ブラウザに保存されているクッキー upgrade-insecure-requests:1 user-agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
▼Response Header cache-control:no-cache, private content-encoding:gzip content-type:text/html; charset=UTF-8 date:Mon, 17 Apr 2017 02:17:56 GMT server:nginx set-cookie:XXXXXX=xxxx; expires=Mon, 17-Apr-2017 04:17:56 GMT; Max-Age=7200; path=/ ← サーバで生成されてセットされたクッキー status:200
セッション
- サーバに保存するデータ。
- それぞれのセッションはセッションID という識別子に紐づいている。
- セッションを取り出すときはクライアントからセッションID送信する。
- セッションIDはクッキーに保存する。
- セッションはWebブラウザを閉じるまで保存される。
- よく保存されるデータ
- ログイン情報
- ECサイトなどのカートに入れた商品情報
関連記事
スポンサーリンク