如何设置laravel关系

时间:2017-02-08 04:58:26

标签: php mysql laravel eloquent foreign-keys

我使用的是Larvel 5.3,我希望与之建立四个表格。

- Users
- Orders

- Products
- Brands

订单属于用户,用户订单很多。 产品属于许多订单,另外,属于一个品牌。 一个品牌有很多产品。

我试图找到一种获取用户订单的方法,包括产品和产品的品牌。

user.php的

public function orders(){
  return $this->hasMany('App\Order');
}

Order.php

public function user() {
  return $this->belongsTo('App\User');
}
public function products(){
  return $this->hasMany('App\Product');
}

Product.php

public function orders() {
  return $this->belongsToMany('App\Orders');
}
public function brand(){
  return $this->belongsTo('App\Brand');
}

Brand.php

public function products() {
  return $this->hasMany('App\Flavour');
}

我希望找回一个包含用户订单的数组,以及每个订单产品和产品'品牌。

有人可以提出建议吗?

1 个答案:

答案 0 :(得分:1)

首先,产品和订单有很多关系。

public function products(){
    return $this->belongsToMany('App\Product');
}

首先获取用户的订单。由于用户有很多订单,因此您需要指定要从中查看产品列表的订单。

$order = $user->orders->first();

然后获取所有产品及其品牌

foreach($order->products) ...

对于您的超级阵列,您可以尝试Eager Loading

$arr = User::with('orders.products.brand')->get(); //Not tested
相关问题