web-dev-qa-db-ja.com

Eloquent / Laravel:updateOrCreate()の最後の挿入/更新ID /インスタンスを取得する方法は?

タイトルはほとんど自明です。 Eloquentには次のメソッドがあります

updateOrCreate()

ここに記載されています: https://laravel.com/docs/5.5/eloquent#other-creation-methods

場合によっては、これは本当に便利です。ただし、updateOrCreate()を実行した後、更新/作成されたオブジェクトまたはその主キーまたはそのIDのいずれかが必要です。

もちろん、MyModel::where(...)->first()を実行して、それらすべてのデータを再度提供することもできますが、これは不器用で、費用のかかる要求になる可能性があります。

ただし、updateOrCreate()trueまたはfalseのみを返します。

何か案は?

6
Blackbam

このメソッドは、作成または更新されたオブジェクトのIDを返すため、次のようにします。

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

$id = $object->id;
13
Alexey Mezenin