2017-10-31 1 views
0

를 사용하는 브랜드를 선택하고, 나는 다음과 같은 테이블이 있습니다 products: id, name, description, category_id, brand_id, sku, created_at... etc 먼 관계, 제품은 내가 전자 상거래 응용 프로그램에서 일하고 있어요

brands: id, name

categories: id,name,parent_id

내가이이 말을 검색 할 해당 범주의 제품을 사용하는 경우 제품이 중복없이 사용하는 모든 브랜드를 검색하는 방법은 무엇입니까? 여러 제품이 동일한 브랜드를 가질 수 있으므로 필터링 사이드 바에 표시되지 않습니다. $products = Product::whereIn('category_id', [1, 2, 3])->get();

답변

0

고유 한 brand_id를 선택하려면 distinct() 메서드를 쿼리 작성기에서 사용할 수 있습니다.

는 제품에

가능한 이용 될 수있다 :

$products = Product 
    ::distinct() 
    ->select('brand_id') 
    ->whereIn('category_id', [1, 2, 3]) 
    ->get(); 
foreach ($products as $product) { 
    print "{$product->brand->name}, "; 
}