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