2017-10-18 138 views
0

我有以下型号:Laravel 5.2:排序数据透视表中的字段模式

- User: 
id 

- Product: 
id 
lid 
user_id 

- ProductCategories: 
product_id 
category_id 
lid 

- Category: 
id 

关系:

用户的hasMany产品

产品belongsToMany类别

我有一个用户和我有一个类别ID,我需要属于该类别的产品,按产品类别

这是最好的解决方案是什么?

目前,这就是我特林使用,但它不正确的方式排序:

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

回答

0

的sollution是:

$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);