我有一个产品表和一个类别表以及category_product表。我想获取特定类别的产品,然后使用属于产品表的列对检索到的产品运行其他查询。例如,所有属于移动类别且价格低于1000 $的产品。我怎样才能做到这一点?第二个问题:如何在其中添加分页?
更新:已解决
带有这样的查询:
$products = Category::where(['title' => 'mobile'] )->first()->pictures()->where('price', '<' , 1000)->latest()->paginate(10);
答案 0 :(得分:0)
您有两种不同的选择:
Category::whereTitle('mobile')->with(['pictures' => function ($q) {
$q->where('price', '<' , 1000)->latest();
}])->paginate(10);
或者您可以在Category模型中定义范围,例如
// @Category Model
public function cheapPictures() {
return $this->hasMany(Picture::class)->where('price', '<' , 1000);
}
您还可以使用本地范围https://laravel.com/docs/5.6/eloquent#local-scopes