Laravel 5.8自定义CRUD提交数据时出现419页面过期问题求助
Laravel提交表单出现419页面过期及数据无法存储的解决方法
核心问题及修复步骤
1. 表单缺少CSRF令牌(419错误的直接原因)
Laravel默认启用CSRF保护机制,所有POST、PUT、DELETE类型的请求必须携带CSRF令牌验证。你的表单未添加该字段,导致提交时触发419页面过期错误。
修复:在<form>标签内部添加CSRF令牌字段,使用Laravel内置的辅助函数:
<form action="/sistem/date" method="post"> @csrf <!-- 新增此行 --> <select name="bln"> <!-- 原有选项内容 --> </select> <input type="text" value="tahun" name="thn"> <input type="submit" class="btn btn-success" value="Masukkan Bulan Baru"> </form>
2. 控制器方法未注入Request实例(数据无法存储的潜在问题)
你的monocontroller的newdate方法中使用了$request变量,但未在方法参数中注入Illuminate\Http\Request实例,会触发「Undefined variable $request」错误,导致数据无法正常存储。
修复:修改newdate方法,注入Request参数:
public function newdate(Request $request) { $this->validate($request, [ 'bln' => 'required', 'thn' => 'required' ]); date::create([ 'bln' => $request->bln, 'thn' => $request->thn ]); return back()->with('success','You have successfully added new date.'); }
代码规范建议
- Laravel模型类名遵循大驼峰命名规范,建议将
date.php重命名为Date.php,类名改为Date,调用时使用Date::create(...)。 - 控制器类名同样建议使用大驼峰,比如
Monocontroller改为MonoController,符合PSR编码规范。
内容的提问来源于stack exchange,提问作者TheBetweener
相关产品推荐
相关产品推荐

