Laravel将数据数组附加到pivot


Laravel attach arrays of data to pivot

我正在尝试附加数据数组。我收集了一些产品,并尝试获取单个项目,然后插入到数据透视表中。我不想把附加放在循环中,因为我想要一个数据库调用

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);
}

我已经在我当地的环境中进行了测试,它是有效的。

您可以查看运行插入语句