Laravel - 将模型保存到 $existing 变量以检查字段是否已更新?
Laravel - save model to $existing variable to check is field has been updated?
我正在尝试将模型实例存储到变量中,以便能够像这样存储现有值:
$meal_booking = MealBooking::where('date', $date)
->first();
$existing_meal_booking = $meal_booking;
$meal_booking->date = $date;
$meal_booking->save();
dump($meal_booking);
dump($existing_meal_booking);
但是,当我转储 $existing_meal_booking var 时,它会显示更新,尽管这应该只针对 $meal_booking var 进行更新。我不确定为什么更新和保存 $meal_booking 也会更新 $existing_meal_booking?
任何有关如何解决此问题的帮助都将非常有用,我需要能够稍后在我的逻辑中比较模型。谢谢
我相信这是编程的基础。
$meal_booking
是一个对象,是引用类型。所以当你给它分配另一个变量时。
$existing_meal_booking = $meal_booking;
它们指的是同一个对象。
您想要 $meal_booking
对象的单独 non-existing 副本,请使用 replicate
方法:
$existing_meal_booking = $meal_booking->replicate();
如果您想跟踪模型对象上发生的更改,我建议使用 model events。
我正在尝试将模型实例存储到变量中,以便能够像这样存储现有值:
$meal_booking = MealBooking::where('date', $date)
->first();
$existing_meal_booking = $meal_booking;
$meal_booking->date = $date;
$meal_booking->save();
dump($meal_booking);
dump($existing_meal_booking);
但是,当我转储 $existing_meal_booking var 时,它会显示更新,尽管这应该只针对 $meal_booking var 进行更新。我不确定为什么更新和保存 $meal_booking 也会更新 $existing_meal_booking?
任何有关如何解决此问题的帮助都将非常有用,我需要能够稍后在我的逻辑中比较模型。谢谢
我相信这是编程的基础。
$meal_booking
是一个对象,是引用类型。所以当你给它分配另一个变量时。
$existing_meal_booking = $meal_booking;
它们指的是同一个对象。
您想要 $meal_booking
对象的单独 non-existing 副本,请使用 replicate
方法:
$existing_meal_booking = $meal_booking->replicate();
如果您想跟踪模型对象上发生的更改,我建议使用 model events。