簡體   English   中英

Laravel 9 Eloquent

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM