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

Laravel预约web应用审批功能提交后数据库字段未更新问题求助

问题根因&修复方案

1. 核心语法错误:赋值运算符误用

你在控制器中更新is_booking字段时,错误使用了**比较运算符==**而非赋值运算符=,代码实际执行的是「判断字段是否等于1」的逻辑,完全没有对字段做赋值修改,这是数据库字段不更新的最主要原因:

// 错误写法:双等号是比较,不会修改属性值
$bookingstatus->is_booking==1;
// 修正为单等号赋值
$bookingstatus->is_booking = 1;

2. 预约记录查询逻辑错误

你的路由已经通过路径参数{id}传递了预约ID,控制器方法也已经接收了$id参数,但查询时错误使用了$request->id,如果表单未提交name为id的字段,$request->id会返回null,导致无法匹配到对应的预约记录。
推荐直接用路由参数查询,同时增加异常捕获处理不存在的预约ID:

// 原错误写法
$bookingstatus=Bookings::where('id',$request->id)->first();
// 修正写法
$bookingstatus = Bookings::findOrFail($id);

3. 可选检查项:模型可赋值字段配置

请确认你的Bookings模型的$fillable属性中已经添加了is_booking字段,否则Laravel的字段保护机制会自动过滤该字段的赋值操作,导致保存失败:

// Bookings.php模型中配置
protected $fillable = [
    // 其他原有可赋值字段
    'is_booking',
];

修正后完整控制器方法参考

public function update(Request $request, $id)
{    
    $bookingstatus = Bookings::findOrFail($id);
    if($bookingstatus->is_booking == 0)
    {
        $bookingstatus->is_booking = 1;
        $saveResult = $bookingstatus->save();
        // 仅保存成功才返回成功提示
        if ($saveResult) {
            return redirect()->back()->with('success','The Booking has successfully been Approved to the accountant');
        }
        return redirect()->back()->with('error','审批操作失败,请重试');
    }
    return redirect()->back()->with('error','该预约状态不允许审批');
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:57:03