我有3张桌子
和3个模型
关系
现在,我想获取用户评分超过2的产品。
如何编写查询?
答案 0 :(得分:0)
您还可以在用户模型中使用hasManyThrough(Product :: class,Rating :: class)建立关系,然后再进行处理。
查看有关larquent的laravel文档,以更好地了解如何使用它进行查询:
https://laravel.com/docs/7.x/eloquent
并查看文档中的“关系”部分,了解hasManyThrough的工作原理。
https://laravel.com/docs/7.x/eloquent-relationships#introduction
答案 1 :(得分:0)
您可以使用whereHas()
方法。例如
假设您的ratings
表中有一个字段rating
,用于存储评分值,并且关系已命名
users
ratings
然后您可以尝试
$products = Product::whereHas('users.ratings', function($rating){
$rating->where('rating','>',2);
})->get();