如何将foreach循环数据存储到另一个模型?

问题描述:

我想将我的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;',如果你不想在...之后继续脚本... –

当然,你会得到最新插入的数据。使用下面的代码来获取所有插入的数据。这是因为最后执行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循环来显示/更新/删除条目。