我有两个表:
ID,Group_ID和名称的团队
ID,home_team_id,away_team_id,日期和比分的游戏

如您在我的游戏表中看到的,有两个指向同一个表(团队)的外键(home_team_id和away_team_id)。
我该如何用laravel雄辩地描绘出这些关系?
我试过了,但是失败了:



namespace App;

use Illuminate\Database\Eloquent\Model;

class Team extends Model
{
    public function group(){
        return $this->belongsTo('App\Group');
    }

    public function games(){
        return $this->hasMany('App\Game');
    }
}

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

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

    public function awayTeam(){
        $this->belongsTo('App\Team', 'away_team_id');
    }

    public function bets(){
        $this->hasMany('App\Bet');
    }
}


在我看来,我想打电话给home_team-> name和away_team-> name:

<td>{{ $game->homeTeam->name }}</td>
<td>{{ $game->awayTeam->name }}</td>


我收到此错误:
关系方法必须返回类型为Illuminate \ Database \ Eloquent \ Relations \ Relation的对象



关系方法必须返回类型为Illuminate \ Database \ Eloquent \ Relations \ Relation的对象(视图:/home/vagrant/Code/em/resources/views/schedule/index.blade.php)

最佳答案

您需要从方法中返回关系。例如:

return $this->belongsTo('App\Team', 'home_team_id');


您可以在团队模型中进行操作,而不能在游戏模型中进行操作。

10-01 23:03