我正在尝试附加数据数组。我收集了一些产品,并尝试获取单个项目,然后插入到数据透视表中。我不想把附加放在循环中,因为我想要一个数据库调用
if($cart->packages)
{
foreach( $cart->packages as $k => $v)
{
$collection = Collection::find($k)->products;
// dd($collection);
$records_array[] = $k;
$name[]['name'] = $v['name'];
$quantity[]['quantity'] = $v['quantity'];
}
// dd($records_array);
$order->collections()->attach($records_array, $name, $quantity);
}
首先,您需要导入DB
facade,在命名空间之后和类名之前的某个位置:
use Illuminate'Support'Facades'DB;
您的控制器中添加了以下内容进行测试:
$cart = array(
array('name' => 'some product 1', 'quantity' => '1'),
array('name' => 'some product 2', 'quantity' => '2'),
array('name' => 'some product 3', 'quantity' => '1'),
);
if ($cart)
{
DB::table('order')->insert($cart);
}
我已经在我当地的环境中进行了测试,它是有效的。
您可以查看运行插入语句