0
间接的关系,我有:获取从集合
User->hasMany('Order')
...
Order->hasMany('Product')
...
$users=User::with('orders','orders.product')->...
我怎么可以检索所有的产品在$用户用户买利用急切的加载而不是做其他查询?
间接的关系,我有:获取从集合
User->hasMany('Order')
...
Order->hasMany('Product')
...
$users=User::with('orders','orders.product')->...
我怎么可以检索所有的产品在$用户用户买利用急切的加载而不是做其他查询?
您可以在用户模型上使用hasManyThrough关系。
https://laravel.com/docs/5.4/eloquent-relationships#has-many-through
public function products()
{
return $this->hasManyThrough('App\Product', 'App\Order');
}
,或者使用集合,如您已预先加载。
$products = User::with('orders','orders.product')->flatMap(function(User $user) {
return $user->orders->flatMap(function(Order $order) {
return $order->products;
});
});