Laravel 5.2:排序数据透视表中的字段模式
问题描述:
我有以下型号: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);
答
的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);