Laravel 5.7的store控制器失效,提交新建文章后无法跳转至列表页
核心问题原因
表单字段名大小写不匹配是导致问题的直接原因:
- 你在Blade模板中定义的标题输入框
name属性为Title(首字母大写),但表单验证规则、控制器中取参都使用小写title,参数名不一致导致title字段验证失败,Laravel默认会自动重定向回表单提交页,所以你看到的是页面刷新没有跳转至列表页。
修复步骤
- 修改Blade模板的标题输入框配置
找到对应代码行,将name属性改为小写title,同时补充id属性和label的for属性对应,符合HTML规范:
<input type="text" name="title" class="form-control" id="title">
- (可选)添加验证错误提示,方便后续排查问题
可以在每个表单字段下方添加错误提示代码,出现问题时可以直接看到错误原因,比如标题字段下方加:
@error('title') <span class="text-danger small">{{ $message }}</span> @enderror
其他字段可以参考上述格式添加对应错误提示。
- (可选)优化flash提示文案
你当前的flash消息写的是catagory created successfully,属于拼写错误且和当前创建文章的场景不符,可以修改为:
session()->flash('success','文章创建成功');
修复完成后再提交表单即可正常通过验证,跳转至文章列表页。
内容的提问来源于stack exchange,提问作者habti habtamu
相关产品推荐
相关产品推荐

