Eloquent / Laravel:如何获取updateOrCreate()的最后一次插入/更新ID /实例?

时间:2017-10-25 15:25:51

标签: php laravel eloquent upsert laravel-5.5

标题大多是不言自明的。 Eloquent有一个名为

的方法
  

updateOrCreate()

在此处记录:https://laravel.com/docs/5.5/eloquent#other-creation-methods

在某些情况下,这非常有用。但是在执行updateOrCreate()之后,我需要更新/创建的对象或其主键或其ID。

当然我可以做MyModel::where(...)->first()并再次提供所有这些数据,但这很笨拙,可能是一些昂贵的请求。

updateOrCreate()仅返回 true false

有什么想法吗?

2 个答案:

答案 0 :(得分:9)

该方法将返回已创建或更新的对象的ID,因此只需执行以下操作:

$object = Model::updateOrCreate(['name' => 'John'], ['age' => 25]);

$id = $object->id;

答案 1 :(得分:-2)

查询最后一个

$lastRecord = MyModel::last();

或者

$lastRecord = MyModel::orderBy('id', 'DESC')->first();