Использование Laravel5.6 hasManyThrough - PullRequest
0 голосов
/ 27 января 2019

Я делаю сайт с командами, командными матчами и матчевыми событиями.В каждом командном матче есть команда хозяев и команда гостей.Каждое событие матча имеет командный матч и команду.

Проблема в том, что я получаю события командного матча для конкретного командного матча, но для домашней команды я также избегаю командные события.

команды

id | name

team_matches

id | home_team_id | away_team_id

team_match_events

id | team_match_id | team_id | событие

Модель команды

public function homeTeamMatch()
{
    return $this->hasMany(TeamMatch::class, 'home_team_id');
}

public function awayTeamMatch()
{
    return $this->hasMany(TeamMatch::class, 'away_team_id');
}

TeamMatch Model

public function homeTeam()
{
    return $this->belongsTo(Team::class, 'home_team_id');
}

public function awayTeam()
{
    return $this->belongsTo(Team::class, 'away_team_id');
}

public function homeTeamMatchEvent()
{
    return $this->hasManyThrough(
        TeamMatchEvent::class, 
        TeamMatch::class,
        'home_team_id', 
        'team_match_id', 
        'id', 
        'id'

    );
}

TeamMatchEvent Model

public function teamMatch()
{
    return $this->belongsTo(TeamMatch::class);
}

public function team()
{
    return $this->belongsTo(Team::class);
}

В HomeController

    $last_match_results = TeamMatch::with('homeTeam.homeTeamMatchEvent')->first();

Когда я выбираю совпадения с командой, я хочу получить домашнюю команду и соответствующее совпадениесобытия этого конкретного командного матча, и то же самое для команды гостей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...