2017-02-08 1 views
0

나는 Larvel 5.3을 사용하고 있으며 관계를 설정하고자하는 네 개의 테이블이 있습니다.laravel 관계를 설정하는 방법

- 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

먼저, 제품과 주문은 다 대다 관계입니다.

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

사용자의 주문을 먼저 받으십시오. 사용자는 주문량이 많기 때문에 제품 목록을 볼 순서를 지정해야합니다.

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

그리고 모든 제품과 수퍼 배열 브랜드

foreach($order->products) ... 

를 얻을, 당신은 열망로드를 시도 할 수 있습니다

$arr = User::with('orders.products.brand')->get(); //Not tested 
관련 문제