updateOrCreate не будет работать на Lumen, но работает над тинкером с DB :: beginTrans () - PullRequest
0 голосов
/ 02 мая 2020

Хочу спросить, как правильно использовать 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.

...