2017-10-18 6 views
0

Je les modèles suivants:Laravel 5.2: Modèles de commande par champ de table Pivot

- User: 
id 

- Product: 
id 
lid 
user_id 

- ProductCategories: 
product_id 
category_id 
lid 

- Category: 
id 

Relations:

Utilisateur hasMany Produit

Produit belongsToMany Catégorie

J'ai un utilisateur et J'ai un identifiant de catégorie et j'ai besoin des produits appartenant à cette catégorie commandés par le couvercle de ProductCategory

Quelle est la meilleure solution pour cela?

Actuellement, c'est ce que je suis Tring à utiliser, mais il ne commande pas par la bonne façon:

$products = $user->products()->whereHas('categories', function($q) use ($category){ 
    $q->where('category_id', $category)->orderBy('product_categories.lid', 'asc'); 
})->paginate(20); 

Répondre

0

Le sollution était:

$products = $user->products()->whereHas('categories', function($q) use ($category){ 
    $q->orderBy('product_categories.lid', 'asc'); 
}) 
->leftJoin('product_categories', 'products.id', '=', 'product_categories.product_id') 
->leftJoin('categories', 'product_categories.category_id', '=', 'categories.id') 
->where('product_categories.category_id', $category) 
->select('products.*') 
->orderBy('product_categories.lid', 'asc')->paginate(20);