2014-11-09 2 views
1

3 가지 표, 제품, 분류 및 product_taxonomy가 있습니다. 세 번째 테이블은 product_id 및 taxonomy_id를 포함하는 피벗 테이블입니다. 즉, 제품 및 분류는 다 대다 관계입니다. 택 소노 미 id의 목록이 주어지면이 택 소노 미에 속한 모든 제품을 어떻게 얻을 수 있습니까? 참고 : 제품 결과 세트에 페이지 매김 또는 가격 결정 등의 주문을 할 수있게하고 싶습니다.Laravel 여러 분류에서 상품을 가져옵니다

답변

1

당신은 many-to-many 관계를 만들 필요하고 그 같은 관계 방법이 필요합니다

// Product Model 
public function taxonomies() 
{ 
    return $this->belongsToMany('Taxonomy'); 
} 

// Taxonomy Model 
public function products() 
{ 
    return $this->belongsToMany('Product'); 
} 

쿼리 :

$listOfTaxonomyIds = [1,2,3]; 
$products = Product::whereHas('taxonomies', function($query) use ($listOfTaxonomyIds){ 
    $query->whereIn('taxonomy_id', $listOfTaxonomyIds); 
})->get(); 
+0

완벽! 이미 많은 관계를 설정하고, 쿼리를 작성하는 법을 모릅니다 ... – dulan

+0

도움이 되니 다행입니다. :-) –