【问题标题】:How to update a single value with laravel如何使用 laravel 更新单个值
【发布时间】:2023-02-03 01:18:50
【问题描述】:

您好,我想使用 laravel 更新另一个表上的单个值。这是我到目前为止所做的代码,但似乎不起作用:

        $amount = Product::findorFail($request->products[$i]);
        $total_value = $request->amount[$i] + $amount->amount;
        $amount->update(['amount', $total_value]);
        dd($total_value);

dd 我看到结果是正确的,但更新功能不正确,我试图做的查询是

update table set amount=x where id=y

【问题讨论】:

  • 将其更改为 $amount->update(['amount'=>$total_value]);
  • 或者也$amount->amount = $total_amount; $amount->save() ;
  • @StewieSWS 是的,但我必须使用update 功能
  • Eloquent 还有一个increment 函数; $product->increment('amount', '100') 将为amount 的当前值增加 100。如果多个用户同时在同一个$product 上工作,这样做的好处是安全。

标签: laravel


【解决方案1】:

你有多种选择。最短的是:

$amount->update(['amount'=> $amount->amount + request->amount[$i]]);

或者

Product::findorFail($request->products[$i])->increment('amount', $request->amount[$i]);

【讨论】:

  • 如果 15 分钟前已经在 cmets 中回答了,那么写答案有什么意义?
【解决方案2】:

你可以像下面这样改变你的代码

$amount = Product::findorFail($request->products[$i]);
$total_value = $request->amount[$i] + $amount->amount;
$amount->amount=$total_value;
$amount->update();

或者如 cmets 中所述,您可以使用雄辩的增量函数

【讨论】:

    猜你喜欢
    • 2019-11-03
    • 1970-01-01
    • 2019-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    • 1970-01-01
    相关资源
    最近更新 更多