【发布时间】:2015-07-06 06:52:47
【问题描述】:
假设我有这些表:users、languages、language_user。最后一个是带有附加字段rating 的数据透视表,该字段定义了用户对该特定语言(母语、好、不好……)的能力水平。
我知道如何让所有用户至少会说一组特定语言中的一种:
$query->whereHas('languages', function($qry){
$qry->whereIn("languages.id", [1, 8, 999]);
});
但是,如果我还想针对每种语言根据 rating 进行过滤,该怎么办?所以我想要一个可以说语言 1 的用户,rating 为 5,或者语言 8,rating 至少为 3?
我尝试在 whereIn 闭包中使用循环来迭代所有值并添加一个 where 子查询来匹配特定值,但它不起作用。
【问题讨论】:
标签: laravel subquery eloquent where-clause