我正在 Laravel 中开发电子商务应用程序。我想在客户单击结帐按钮时保存购物车值订单和订单详细信息表。一份订单有很多订单详细信息。我可以插入订单值:客户 ID、订单日期、发货日期、订单金额……但正如我所提到的,一个订单有许多订单详细信息。这是我的订单详细信息表:
**Id
ordereid
product_id
price
quantity
price
amount**
每个订单都有很多产品,如下所示:
Array ( [productids] => Array ( [0] => 6 [1] => 11 [2] => 7 [3] => 1 ) [quantity] => Array ( [0] => 2[1]=>1[2]=>3) [price] => Array ( [0] => 750.00 [1] => 456.00 [2] => 200.00 [3] => 700.00 ) [amount] => Array ( [0] => 1500 [1] => 456 [2] => 600 [3] => 1400 ) )
这就是我所做的,并且收到数组到字符串转换异常
for($i=0; $i < count($product); $i++)
{
$order_details =new Order_detail;
$order_details->order_id = $orders->id;
$order_details->product_id=$product['product_id'][$i];
$order_details->quantity=$product['quantity'][$i];
$order_details->unit_price=$product['price'][$i];
$order_details->amount=$product[amount][$i];
$order_details->save();
}
我还尝试将每个子数组包装在 foreach 循环中,但在订单详细信息中仅插入一个原始数据
例如,如果客户订单购物车包含三种产品,则应将三行插入订单详细信息中:
Id
ordered
productid
quantity
price
amount
任何帮助。
这就是我在这种情况下会做的事情。
第一步:从数组中抓取对象
$order_details = [];
for($i= 0; $i < count($product); $i++){
$order_details[] = [
'order_id' => $orders->id,
'product_id' => $product['product_id'][$i],
'quantity' => $product['quantity'][$i],
'unit_price' => $product['price'][$i],
'amount' => $product['amount'][$i],
];
}
第二步:插入表中
\DB::table('order_details')->insert($order_details);
这就是你所需要的,
有关插入方法的更多信息,请参见here https://laravel.com/docs/master/queries#inserts
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)