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

Laravel框架下Eloquent提交表单无法正常写入数据库问题求助

问题排查结果

  • 核心原因是表单验证不通过,触发了Laravel默认的验证失败重定向逻辑,直接跳转回创建页。
    你在store方法的验证规则里要求了user_id、status两个参数为必填项,但你的前端表单根本没有这两个输入项,从你给出的dd($request->all())结果也能看到,请求里确实没有这两个参数,所以验证直接失败。
  • 额外隐藏问题:你给出的borrow数据表字段列表里没有status字段,就算验证通过,后续执行Borrow::create写入的时候也会因为数据库不存在该字段抛出异常。

修复方案

  1. 调整验证规则,删掉不需要前端传参的字段校验:
public function store(Request $request)
{
    $this->validate($request,[
        'book_id' => 'required',
        'member_id' => 'required',
        'borrow_date' => 'required',
        'return_date' => 'required',
    ]);
    // 后续写入、重定向逻辑保持不变即可
}

user_id你是直接从登录态Auth::user()->id取值,不需要前端传;status你是写死为borrowed,也不需要前端提交,所以这两个参数不需要加到验证规则里。
2. 如果你业务上需要status字段,先创建迁移给borrow表新增status字段;如果不需要该字段,删掉Borrow::create数组里的'status' => 'borrowed',这行代码即可。
3. 建议你在Blade视图中添加验证错误提示,方便后续排查同类问题,示例如下:

{{-- 放在表单顶部或者对应字段下方都可以 --}}
@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

内容的提问来源于stack exchange,提问作者SomeRandomCode

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:06:03