Объявление 2 отношения к той же таблице в yii2

Можно ли объявить 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');
}
}

Как я могу получить команды из модели турнира?

0

Решение

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');
}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]