我使用的是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');
}
我希望找回一个包含用户订单的数组,以及每个订单产品和产品'品牌。
有人可以提出建议吗?
答案 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