Задача: Есть пользователи. Есть лидеры, есть бегуны. У лидера может быть до 5ти бегунов, который тот обучает. Связь 1 ко многим. 1 лидер, много бегунов.
Таблица проста до безобразия: id, login, team_id, team_status
team_id - id лидера в этой же таблице
team_status - статус, принят, выгнан и пр...
public function getTeam(){
if($this->getIsLeader())
return $this->hasMany(self::className(), ['team_id'=>'id']);
else
return User::find()->where(['id'=>$this->team_id])->one()->getTeam(); // WTF?
}
public function getTeam_count(){
return $this->getTeam()->count();
}
Сделал вот таким образом. Если это лидер, то просто вывожу его команду.
Но что сделать, если я один из бегунов команды? Не могу никак с логикой в голове разобраться. Как вывести всех участников команды, в которой я состою? В т.ч. и лидера?