简体   繁体   中英

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

The title is mostly self-explanatory. Eloquent has a method called

updateOrCreate()

documented here: https://laravel.com/docs/5.5/eloquent#other-creation-methods

In some cases this is really useful. However after doing updateOrCreate() I need either the updated/created object or its primary key or its id.

Of course I could do MyModel::where(...)->first() and give all those data again but this is clumsy and may be some expensive request.

However updateOrCreate() only returns true or false .

Any ideas?

The method will return ID of created or updated object, so just do this:

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

$id = $object->id;

Query for the last one

$lastRecord = MyModel::last();

Or

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM