Eloquent / Laravel:如何获取 updateOrCreate() 的最后 insert/update ID/instance?

Eloquent / Laravel: How to get last insert/update ID/instance of updateOrCreate()?

标题大多是self-explanatory。 Eloquent 有一个方法叫做

updateOrCreate()

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

在某些情况下这真的很有用。但是,在执行 updateOrCreate() 之后,我需要 updated/created object 或其主键或其 ID。

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

然而 updateOrCreate() 仅 returns truefalse.

有什么想法吗?

查询最后一个

$lastRecord = MyModel::last();

或者

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

该方法将 return 创建或更新对象的 ID,所以只需这样做:

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

$id = $object->id;