2017-07-15 118 views
0

我想將我的foreach循環數據存儲到另一個變量中。問題是我可以將數據存儲到數據庫中,但是當我dd()輸出時,它只顯示分配給模型的最後一個數據。如何將foreach循環數據存儲到另一個模型?

如何從新模型中獲取數組數據?

foreach ($carts as $cart) 
{ 
    $buy = new Buy();    
    $buy->product_id = $cart->product_id; 
    $buy->user_id = $cart->user_id; 
    $buy->price = $cart->price; 
    $buy->extened = $cart->extened; 
    $buy->installation = $cart->installation; 
    $buy->support = $cart->support;    
    $buy->feature_image = $cart->feature_image; 
    $buy->name = $cart->name; 
    $buy->save();    
} 

dd($buy); // it returns only last inserted data .. 
+2

'dd($ buy);'在循環之外。所以它只包含最後一個元素。將其移到循環中並顯示全部。 – colburton

+0

不是,只有最後一個元素顯示爲 – User57

+0

由於'dd()'意思是「dump and die」(它會在調用時停止執行腳本),因此在循環內部會在第一次迭代後停止腳本。如果你想把每個項目都轉儲到屏幕上,你需要在循環內部執行'print_r($ buy)'或'var_dump($ buy)'。然後在循環後添加一個'exit;',如果你不想在...之後繼續腳本... –

回答

2

當然,你會得到最新插入的數據。使用下面的代碼來獲取所有插入的數據。這是因爲最後執行foreach循環,$buy將有最新的$cart信息。

您可以使用以下代碼獲取所有Buy型號。我們將創建一個空數組,並將數組添加到數組中。

$buys = array(); // I don't care about the name of the array lol. 
foreach ($carts as $cart) 
{ 
    $buy = new Buy();    
    $buy->product_id = $cart->product_id; 
    $buy->user_id = $cart->user_id; 
    $buy->price = $cart->price; 
    $buy->extened = $cart->extened; 
    $buy->installation = $cart->installation; 
    $buy->support = $cart->support;    
    $buy->feature_image = $cart->feature_image; 
    $buy->name = $cart->name; 
    $buy->save(); 

    array_push($buys,$buy);   
} 

將每個記錄存儲在$buys數組,然後你可以做任何你想要與數組做。

讓我知道這是你想要的。如果您還有其他問題,請告訴我。

UPDATE:您可以在$buys上運行foreach循環來顯示/更新/刪除條目。

相關問題