我希望用户通过另一个表获得所有非联合的组。我的表是user,user_to_usergroup和usergroup。
有没有办法从查询中获得相反的结果?
代码如下:
public function getGroupsNotJoint() {
return $this- >hasMany(Usergroup::className(),
['id' => 'group_id'])->viaTable('user_to_usergroup', ['user_id' => 'id']);
}
此代码返回用户所属的所有组,我只想要用户不属于的组。
答案 0 :(得分:1)
命名现有关系getGroups()
,您可以通过修改此关系(应用其他条件)来获取当前用户的其余组:
public function getOtherGroups()
{
return $this->getGroups()->andWhere(['!=', 'user_id', \Yii::$app->user->id]);
}