如何将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 ..
答
当然,你会得到最新插入的数据。使用下面的代码来获取所有插入的数据。这是因为最后执行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
循环来显示/更新/删除条目。
'dd($ buy);'在循环之外。所以它只包含最后一个元素。将其移到循环中并显示全部。 – colburton
不是,只有最后一个元素显示为 – User57
由于'dd()'意思是“dump and die”(它会在调用时停止执行脚本),因此在循环内部会在第一次迭代后停止脚本。如果你想把每个项目都转储到屏幕上,你需要在循环内部执行'print_r($ buy)'或'var_dump($ buy)'。然后在循环后添加一个'exit;',如果你不想在...之后继续脚本... –