我的用户有很多商店,而商店有很多商品
现在我想知道,有没有办法可以为这个用户收集所有产品的集合。
无需经过他所拥有的商店。
$products = \Auth::user()->shops()->with('products')->get();
答案 0 :(得分:5)
class User extends Model
{
...
public function products()
{
return $this->hasManyThrough('App\Product', 'App\Shop');
}
...
}
答案 1 :(得分:1)
您可以使用pluck方法从多个商店获取所有产品。
public function products()
{
return $this->shops->pluck('products');
}
public function shops()
{
return $this->belongsToMany(Shop::class);
}
($this
是您的用户模型的实例)
在您的商店模型上,您必须与产品建立Laravel关系
public function products()
{
return $this->belongsToMany(Product::class);
}