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

Laravel如何更新单表单个字段?代码问题求助

Laravel 更新单个字段值的问题修复

你的代码问题出在update()方法的参数格式上:

  • Laravel 的模型update()方法要求传入关联数组,格式为['字段名' => 新值],而你传入的是索引数组['amount', $total_value],导致框架无法识别要更新的字段和对应值。

修正后的基础代码

$amount = Product::findorFail($request->products[$i]);
$total_value = $request->amount[$i] + $amount->amount;
// 使用关联数组传递更新字段与值
$amount->update(['amount' => $total_value]);
dd($total_value);

更高效的写法(避免额外查询)

如果不需要使用模型实例的其他属性,可以直接用查询构造器在数据库层面完成累加,减少一次数据库查询,同时避免并发更新的数据覆盖问题:

use Illuminate\Support\Facades\DB;

Product::where('id', $request->products[$i])
    ->update([
        'amount' => DB::raw('amount + ?', [$request->amount[$i]])
    ]);

这种写法对应的SQL就是你想要的:update products set amount = amount + ? where id = ?,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 11:15:28