【发布时间】:2015-11-03 11:47:03
【问题描述】:
在 Laravel 5.1 中,我对插入使用质量分配。但我想学习如何使用 Eloquent 批量插入。
我需要在订单流程中插入已售出的产品。
这是我要插入的数据。
foreach($cart['fields'] as $key => $product)
{
$orderDetailData[] = [
'order_id' => $orderData['order_id'],
'product_id' => $product['id'],
'quantity' => $product['total_quantity'],
'price' => floatval($product['wholesale_price']),
'vat' => $product['vat'],
'vat_value' => floatval($product['vat_value']),
'discount_ratio' => $product['discount_ratio'],
'discount' => floatval($product['discount_value']),
'total_amount' => floatval($product['total_amount']),
];
}
这是我的插入代码
(new OrderDetail)->create($orderDetailData);
我认为这种方法不支持批量插入。
在 Laravel 5.1 Manuel 中我看到了这个。
DB::table('table')->insert($orderDetailData);
批量插入的批量分配应该怎么做?我应该使用前一个(数据库外观)
因为我收到此代码的错误(500 内部服务器错误)
(new OrderDetail)->create($orderDetailData);
【问题讨论】:
-
500 internal server error的错误是什么? -
当您手动设置字段时,为什么会担心批量分配?当人们想要做类似
Model::create($request->all())的事情时,批量分配是一个问题,而不是当他们手动指定要添加哪个字段时。
标签: php laravel mass-assignment