Yii2-使用多个表获取

Yii2-使用多个表获取,yii,yii2,Yii,Yii2,为了获得团队的所有用户,我需要加入5个表。表格如下: User: iduser | firstName | lastName Team: idteam | name TeamUser: idteamuser | idteam | iduser Portal: idportal | name PortalTeam: idportalteam | idteam 在门户模型中,我需要获取该门户的所有用户。这可能吗?不是最佳答案,但可以使用ActiveQuery对象和join()方法。 经验: 我认

为了获得团队的所有用户,我需要加入5个表。表格如下:

User: iduser | firstName | lastName
Team: idteam | name
TeamUser: idteamuser | idteam | iduser
Portal: idportal | name
PortalTeam: idportalteam | idteam

门户模型中,我需要获取该门户的所有用户。这可能吗?

不是最佳答案,但可以使用ActiveQuery对象和join()方法。

经验:


我认为门户模型中缺少链接到其他模型的字段(idportalteam)。添加后,可以为所有模型创建关系

门户网站:

public function getPortalTeam()
{
    return $this->hasOne(PortalTeam::className(), ['idportalteam' => 'idportalteam']);
}
便携式电话:

public function getTeamUser()
{
    return $this->hasOne(TeamUser::className(), ['idteam' => 'idteam']);
}
团队用户:

public function getTeam()
{
    return $this->hasOne(Team::className(), ['idteam' => 'idteam']);
}
public function getUser()
{
    return $this->hasOne(User::className(), ['iduser' => 'iduser']);
}
团队用户:

public function getTeam()
{
    return $this->hasOne(Team::className(), ['idteam' => 'idteam']);
}
public function getUser()
{
    return $this->hasOne(User::className(), ['iduser' => 'iduser']);
}
要从门户获取模型,请使用:

$portal = (new Portal())->findOne(xyz);
$team = (($portal->portalTeam)->teamUser)->team;
$user = (($portal->portalTeam)->teamUser)->user;

这是可能的!!请阅读Yii关系: