我得到了一个与产品具有多对多关系的Order对象:
public function products() {
return $this->belongsToMany('App\Product', 'order_products')
->withPivot('count', 'price');
}
我接受要求提供产品的数组,然后将其附加到订单上。但是,如果我得到的是数组而不是集合,那我应该怎么做呢?我可以通过$request->products
中的循环来完成此操作,但这对我来说似乎是错误的。
确切地说,我有一个数组:
$products = [
['id' => 4, 'count' => 5],
['id'=>5, 'count' => 3]
];
如何$order->products->attach()
没有循环?
答案 0 :(得分:3)
attach
和detach
都接受ID数组:
$ids = collect($request->products)->pluck('id');
$order->products()->attach($ids);