所以我在我的Brands模型中有以下关系,现在我想在我的BrandsSearch模型中做的是计算连接表(BrandsReviews)中的记录数,然后如果它是< = 0或null那么过滤掉/不在数据集中返回。
public function getBrandsReviews()
{
return $this->hasMany(BrandsReviews::className(), ['brands_id' => 'id']);
}
类似的东西(但是它表示组功能的使用无效):
->andFilterWhere(['>', 'count(brands.brandsReviews)', 0]);
答案 0 :(得分:1)
如果要将聚合函数过滤为count()或sum() 你可以使用andFilterHaving()
->andFilterHaving(['>', 'count(brands.brandsReviews)', 0]);
http://www.yiiframework.com/doc-2.0/yii-db-query.html#andFilterHaving()-detail