如何通过Laravel集合从数组获取属性?

时间:2018-08-04 17:34:17

标签: laravel collections eloquent

我得到了一个与产品具有多对多关系的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()没有循环?

1 个答案:

答案 0 :(得分:3)

attachdetach都接受ID数组:

$ids = collect($request->products)->pluck('id');

$order->products()->attach($ids);