[英]Laravel 9 Eloquent
您好,我正在嘗試在我的代碼中使用 eloquent:
$nr_riga = 0;
foreach($data_detail as $key => $row_detail) {
$nr_riga = $key + 1;
$new_orders_details->nr_riga = $nr_riga;
$new_orders_details->codice_articolo = $row_detail['codice_articolo'];
$new_orders_details->quantita = $row_detail['quantita'];
$new_orders_details->prezzo = $row_detail['prezzo'];
$new_orders_details->order_id = $new_orders_grid->id;
$new_orders_details->save();
// DB::table('orders_detail')->insert([
// 'order_id' => $new_orders_details->order_id,
// 'nr_riga' => $nr_riga,
// 'codice_articolo' => $new_orders_details->codice_articolo,
// 'quantita' => $new_orders_details->quantita,
// 'prezzo' => $new_orders_details->prezzo,
// ]);
}
這個循環雙向工作,但不是平等的......當我使用 $new_orders_details->save(); 它向數據庫插入單行,似乎沒有循環。
DB::table('orders_detail')->insert 做我想做的工作。
如何將其轉換為 eloquent 以獲得相同的結果?
您必須在循環中創建新的 model 實例。
$new_orders_details = new OrderSDetail();
由於我無法發表評論,您可以嘗試此解決方案嗎?
$ordersDetail = new OrderSDetail();
$ordersDetail->insert([ //your data here]);
我認為您可以在循環中准備日期並使用 Model::insert($your_data) 進行一批插入
循環保存不是將數據保存到數據庫的最佳方法,例如:
$data = [];
foreach($data_detail as $key => $row_detail) {
$nr_riga = $key + 1;
$data[]['nr_riga'] = $nr_riga;
$data[]['codice_articolo'] = $row_detail['codice_articolo'];
$data[]['quantita'] = $row_detail['quantita'];
$data[]['prezzo'] = $row_detail['prezzo'];
$data[]['order_id'] = $new_orders_grid->id;
}
NewOrderDetails::insert($data);
使用 model 保存所有數據
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.