如何在laravel中保存使用条件?

时间:2015-12-18 10:41:41

标签: php mysql laravel

基本上我想使用条件在我的模型中保存数据,以防止同时执行多个保存数据。

我现在所做的是:

$order = Order::find(id);
$order->paid_amount = $amount;
$order->status = $status;
$order->save();

我需要的是:

$order = Order::find(id);
$order->paid_amount = $amount;
$order->status = $status;
$order->where('last_update', $last_update);
$order->save();

是否可以在laravel中有效地执行此操作,还是必须使用原始sql或更新?

3 个答案:

答案 0 :(得分:3)

@Amarnasan答案的简化版本:

Order::findOrFail($id)->update([
     'paid_amount' => $amount,
     'status' => $status;
]);

答案 1 :(得分:1)

我认为这是最好的方法:

$order = Order::where('last_update', $last_update)->find($id);
$order->paid_amount = $amount;
$order->status = $status;
$order->save();

答案 2 :(得分:1)

我猜您的意思是“是否可以在雄辩中有效地执行此操作,还是必须使用原始sql或更新?”

无论如何,我认为您需要查询构建器来执行您想要的操作:

DB::table('order')
    ->where('id', $id)
    ->update([
         'paid_amount' => $amount,
         'status' => $status;
      ]);

这是你能得到的原子。