Laravel提交国家名称表单数据无法存入Database问题排查求助
问题排查与解决方案
- 核心错误为控制器验证规则配置与表单字段名不匹配
你前端表单提交的国家名称字段名为country_name,但控制器验证规则中声明的必填字段为name,请求提交时因缺少name参数直接被验证规则拦截,因此提示字段为空,后续的数据库写入逻辑不会执行。
同时你配置的unique规则也指向了不存在的name字段,若需要校验国家名称唯一性也需要同步修改。
修改后的控制器代码参考:
public function store(Request $request) { $this->validate($request,[ // 校验字段改为表单提交的country_name,unique规则指定表对应字段 'country_name'=>'required|unique:divisions,country_name', 'subcontinent_id' => 'required' // 若该字段为必填可保留,非必填可删除 ], [ 'country_name.unique' => '国家名称已存在' ]); $divisions = new Division(); $divisions->country_name = $request->country_name; $divisions->subcontinent_id = $request->subcontinent_id; $divisions->save(); return back(); }
可选排查方案:
如果修改后仍有异常,可在验证逻辑前临时添加dd($request->all())打印请求参数,确认前端提交的字段名和数值是否正常传递到后端。
内容的提问来源于stack exchange,提问作者Oni Sama
相关产品推荐
相关产品推荐

