2016-10-25 3 views
2

у меня есть футбольный игры который имеет HOME_TEAM и AWAY_TEAMLaravel отношение на 2-х полей

Мои отношения для Game.php заключаются в следующем:

public function hometeam() 
{ 
    return $this->hasOne(Team::class, 'id', 'home_team_id'); 
} 

public function awayteam() 
{ 
    return $this->hasOne(Team::class, 'id', 'away_team_id'); 
} 

сейчас Я хочу видеть за каждую команду , на которой он принадлежит.

Я попробовал следующее Team.php но это возвращение нуль

public function homeGames() 
{ 
    return $this->belongsTo('App\Models\Game', 'home_team_id', 'id'); 
} 

public function awayGames() 
{ 
    return $this->belongsTo('App\Models\Game', 'away_team_id', 'id'); 
} 

И то же самое для away_team_id Offcourse.

Я что-то упустил?

Спасибо!

ответ

1

В таблице ваших игр нет 2 внешних ключей стола команд, один для хозяев и один для команды гостей? (отношения от одного до многих).

Таким образом, вы можете сделать что-то вроде $team->homeGames и $team->awayGames, и вы получите все домашние игры и прочь игры для определенной команды.

Кроме того, модель команды должны иметь 2 х return $this->hasMany(Game::class); методы в то время как модель игры должна иметь 2 х return $this->belongsTo(Team::class);

Update:

Team.php модель

class Team extends Model 
{ 
    public function homeGames() 
    { 
     return $this->hasMany(Game::class, 'id', 'home_team_id'); 
    } 

    public function awayGames() 
    { 
     return $this->hasMany(Game::class, 'id', 'away_team_id'); 
    } 
} 

Game.php модель

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

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

Спасибо за ваше время, но он возвращает «null» для бота h .. – Notflip

+0

Вы добавили фиктивные данные? Кроме того, модель Team должна иметь 2 x 'return $ this-> hasMany (Game :: class);' методы, в то время как модель Game должна иметь 2 x 'return $ this-> принадлежитTo (Team :: class);' – Ruffles

+0

Aha Это решение! :) Спасибо, если вы отредактируете свой ответ, я приму его – Notflip

Смежные вопросы