You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel数据无法存入数据库且无报错问题求助

问题排查与解决方案

核心问题:字段名不匹配

你表单里最后一个输入框的name属性是kode_lokasi,但控制器验证规则要求的是kode_area,数据库和模型对应的也是kode_area字段。这会导致Laravel的验证逻辑找不到kode_area参数,直接触发验证失败。

你看不到报错的原因是:Laravel验证失败后会自动重定向回表单,但你的表单没有添加错误信息输出代码,所以无任何提示,只会表现为数据未存入、无报错。

解决方案步骤

  1. 修正表单字段名
    把表单中“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>
  1. 添加错误信息显示(推荐)
    在表单顶部添加错误提示代码,方便后续快速排查问题:
@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif
  1. 临时调试(可选)
    如果仍有问题,可在控制器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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 03:35:27