Задать вопрос

Yii2 / hasOne / hasMany или что я делаю не так?

Имеем 3 таблицы:
Teams (id, capitan_id, ...) - список поманд
Fighters (id, ...) - список бойцов
Rosters (id, fighter_id, team_id) - таблица связей "многие-ко многим"
Релэйшены между таблицами имеются

Как на вьюхе конкретной команды вывести список её бойцов, а также её капитана, я понял
А вот как вывести список команд и в каждой капитана и список бойцов, никак не пойму.

Модель:
<?php 
namespace app\models;

use Yii;
use app\models\Fighters;

class Clans extends \yii\db\ActiveRecord {
	
	public static function tableName() {
		return 'teams';
	}
    
	public static function allClans() {
		$data = self::find()->all();
		return $data;
	}
    
	public function getCapitans() {
	//получаю капитана команды
        	return $this->hasOne(Fighters::className(), ['id' => 'capitan_id']);
	}
    
	public function getMembers() {
	//получаю бойцов команды
		return $this->hasMany(Fighters::className(), ['id' => 'fighter_id'])
	                ->viaTable(Rosters::tableName(), ['team_id' => 'id']);
	}
		
}


Подскажите, пожалуйста! Ступор прямо!
  • Вопрос задан
  • 1953 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@shamyyl
Web-разработчик
Тебе на до правильно вывести связь многие ко многим.
Yii2. Связывание посредством промежуточной таблицы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы