さんごー日記。

映画や本やゲームの感想をゆるく記録したり、プログラミングの勉強をゆるく記録するゆるい日記です。

Laravel5.6 「The page has expired due to inactivity.」エラー

Laravel5.6でRoute::resource()を使い、
フォームでPOSTするアプリケーションを作ろうとしたら以下のようなエラーが出た。

The page has expired due to inactivity.
Please refresh and try again.

f:id:thirtyfive:20180609165746p:plain


翻訳すると。
「ページが非アクティブなために期限切れになっています。
リフレッシュしてもう一度お試しください。」

どういう事だかよくわからんと思いましたが、CSRF対応をしていないと出るエラーらしい。

ビューのformの箇所に`{{ csrf_field() }}`を追加すると解決する。

<form action="" method="POST">
  {{ csrf_field() }}
  <input type="text" name="hoge">
  <input type="submit">
</form>

表示されたエラーメッセージはCSRFのトークンの期限切れを伝えるものだったわけですね。
自分のアプリケーション用にエラーページとかを修正しておく必要がありそうだ。

Laravel参考書籍

Webのマニュアルや本で先に勉強しておけばつまづかなかったのかもしれないが、すぐ分かったし良いか。

PHPフレームワーク Laravel入門

PHPフレームワーク Laravel入門

Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)

Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)

  • 作者: 川瀬裕久,古川文生,松尾大,竹澤有貴,小山哲志,新原雅司
  • 出版社/メーカー: 技術評論社
  • 発売日: 2015/04/21
  • メディア: 大型本
  • この商品を含むブログを見る