Хочу спросить, как правильно использовать updateOrCreate? Так как я попробовал его с помощью tinker, он работает хорошо, но тот же код, который запускается через контроллер lumen, работать не будет. Даже не отправляйте никаких ошибок или что-то подобное, просто остановитесь на коде
Посмотрите этот мыслитель
>>> DB::beginTransaction();
=> null
>>> MhProductUnit::updateOrCreate(["id_mh_product" => 1, "unit" => "KRT"], [
"order" => 2,
"unit" => "KRT",
"amount" => 1,
"created_by" => 1
]);
PHP Fatal error: Class 'MhProductUnit' not found in Psy Shell code on line 1
>>> \App\Models\MhProductUnit::updateOrCreate(["id_mh_product" => 1, "unit" => "KODI"], [
"order" => 2,
"unit" => "KODI",
"amount" => 3,
"created_by" => 1
]);
=> App\Models\MhProductUnit {#716
id_mh_product: 1,
unit: "KODI",
order: 2,
amount: 3,
id: 9,
}
>>> \App\Models\MhProductUnit::updateOrCreate(["id_mh_product" => 1, "unit" => "PSG"], [
"order" => 3,
"unit" => "PSG",
"amount" => 20,
"created_by" => 1
]);
=> App\Models\MhProductUnit {#745
id_mh_product: 1,
unit: "PSG",
order: 3,
amount: 20,
id: 11,
}
>>> DB::commit();
=> null
>>>
, но в то же время, с кодом, он не будет работать
DB::beginTransaction();
foreach ($unit as $key => $u) {
MhProductUnit::updateOrCreate(["id_mh_product" => $productID, "unit" => ""], [
"order" => $key,
"unit" => $u["unit"],
"amount" => $u["amount"],
"price" => 0, // Tidak ada harga di sini,
"created_by" => $userID
]);
}
DB::commit();
остановится на первой итерации (предположим, что все переменные заполнены и работают полностью), на Lumen 5.8.