Laravel5.6でRoute::resource()を使い、
フォームでPOSTするアプリケーションを作ろうとしたら以下のようなエラーが出た。
The page has expired due to inactivity. Please refresh and try again.
翻訳すると。
「ページが非アクティブなために期限切れになっています。
リフレッシュしてもう一度お試しください。」
どういう事だかよくわからんと思いましたが、CSRF対応をしていないと出るエラーらしい。
ビューのformの箇所に`{{ csrf_field() }}`を追加すると解決する。
<form action="" method="POST"> {{ csrf_field() }} <input type="text" name="hoge"> <input type="submit"> </form>
表示されたエラーメッセージはCSRFのトークンの期限切れを伝えるものだったわけですね。
自分のアプリケーション用にエラーページとかを修正しておく必要がありそうだ。
Laravel参考書籍
Webのマニュアルや本で先に勉強しておけばつまづかなかったのかもしれないが、すぐ分かったし良いか。
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2017/09/16
- メディア: 単行本
- この商品を含むブログを見る
PHPはじめてのフレームワーク Laravel 5.5対応 ステップ1
- 作者: 山崎大助
- 発売日: 2017/03/18
- メディア: Kindle版
- この商品を含むブログを見る
Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)
- 作者: 川瀬裕久,古川文生,松尾大,竹澤有貴,小山哲志,新原雅司
- 出版社/メーカー: 技術評論社
- 発売日: 2015/04/21
- メディア: 大型本
- この商品を含むブログを見る