Eloquent / Laravel: как получить последний идентификатор вставки / обновления / экземпляр updateOrCreate ()?

Название в основном не требует пояснений. Eloquent имеет метод, называемый

updateOrCreate()

задокументировано здесь: https://laravel.com/docs/5.5/eloquent#other-creation-methods

В некоторых случаях это действительно полезно. Однако после выполнения updateOrCreate() Мне нужен либо обновленный / созданный объект, либо его первичный ключ, либо его идентификатор.

Конечно я мог сделать MyModel::where(...)->first() и дать все эти данные еще раз, но это неуклюже и может быть дорогой запрос.

тем не мение updateOrCreate() только возвращается правда или же ложный.

Есть идеи?

5

Решение

Метод вернет идентификатор созданного или обновленного объекта, поэтому просто сделайте это:

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

$id = $object->id;
8

Другие решения

Запрос последнего

$lastRecord = MyModel::last();

Или же

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

По вопросам рекламы [email protected]