Можно ли объявить 2 отношения к одной и той же таблице в yii2?
Пример:
tournament(id, name)
game(id, tournamentId, team1Id, team2Id)
team(id, name)
player(id, name, teamId)
Итак, вот схема, и, как вы можете видеть, игра должна состоять из 2 team, team1 и team2.
Теперь в модели турниров в yii мне нужно создать отношения, которые бы давали мне команды, которые участвовали в турнире.
public class Tournament extends ActiveRecord
{
...
public function getGames()
{
return $this->hasMany(Game::className(), ['tournamentId' => 'id']);
}
public function getParticipatedTeams()
{
return $this->hasMany(Team::className(), [/*what should the link be? */])->via('games');
}
}
Как я могу получить команды из модели турнира?
public class Tournament extends ActiveRecord
{
...
public function getGames()
{
return $this->hasMany(Game::className(), ['tournamentId' => 'id']);
}
public function getParticipatedTeam1()
{
return $this->hasMany(Team::className(), ['id' => 'team1Id'])->via('games');
}
public function getParticipatedTeam2()
{
return $this->hasMany(Team::className(), ['id' => 'team2Id'])->via('games');
}
}
Других решений пока нет …