基于hasMany关系laravel

时间:2019-11-30 14:13:40

标签: laravel relationship has-many

我使用ProductCatRel模型建立了从类别模型到产品模型的“ hasMany”关系。

我正在尝试从类别模型订购产品。 “ where”条件很好,但是“ orderBy”不起作用。这是我的代码:

public function Products(){
    return $this->hasMany(ProductCatRel::class,'category')
        ->with('Product')
        ->whereHas('Product', function($q){
            $q->where('status', 1)->orderBy('position');
    });
}

2 个答案:

答案 0 :(得分:0)

使用以下代码段可能有效

public function products(){
    return $this->hasMany(ProductCatRel::class,'category')
        ->with('Product')
        ->whereHas('Product', function($q){
            $q->where('status', 1)
    });
}

$products = App\Category::find(1)->products()->orderBy('position')->get();

答案 1 :(得分:0)

whereHas()仅检查是否存在,并且不影响检索到的关系数据。

您应该以{{1​​}}方法应用orderBy()。另外,您需要使用with()方法重复状态检查。

with()