Laravel数据无法存入数据库且无报错问题求助
问题排查与解决方案
核心问题:字段名不匹配
你表单里最后一个输入框的name属性是kode_lokasi,但控制器验证规则要求的是kode_area,数据库和模型对应的也是kode_area字段。这会导致Laravel的验证逻辑找不到kode_area参数,直接触发验证失败。
你看不到报错的原因是:Laravel验证失败后会自动重定向回表单,但你的表单没有添加错误信息输出代码,所以无任何提示,只会表现为数据未存入、无报错。
解决方案步骤
- 修正表单字段名
把表单中“Kode Lokasi”对应的输入框的name、id和label的for属性统一改成kode_area,和控制器、数据库字段保持一致:
<div class="mb-3"> <label for="kode_area" class="form-label">Kode Area</label> <input type="text" class="form-control" id="kode_area" name="kode_area"> </div>
- 添加错误信息显示(推荐)
在表单顶部添加错误提示代码,方便后续快速排查问题:
@if ($errors->any()) <div class="alert alert-danger"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif
- 临时调试(可选)
如果仍有问题,可在控制器store方法里临时打印请求参数,确认数据是否正确接收:
public function store(Request $request) { // 临时打印所有请求参数 dd($request->all()); $validatedData = $request->validate([ 'kabupaten' => ['required'], 'provinsi' => ['required'], 'unit' => ['required'], 'satuan_kerja' => ['required'], 'nama_area' => ['required'], 'kode_area' => ['required'] ]); Area::create($validatedData); return redirect('/dashboard/areas')->with('success','Area baru telah ditambahkan!'); }
额外检查点
- 确认
areas数据库表确实存在kode_area字段,且字段类型符合需求(如varchar)。 - 模型的
$guarded设置已排除主键id_area,其他字段允许批量赋值,这部分配置无问题。
内容的提问来源于stack exchange,提问作者Fauzan Zaman
相关产品推荐
相关产品推荐

