无法使 Laravel 关系正常工作

Can't get Laravel relationship to work

我不知道我今天做错了什么,我无法在 Laravel 4 中建立 1-N 关系。我正在尝试描述拥有很多球员的足球队。

我有一个 "players.team_id" 字段。我仔细检查了数据库,数据没问题。

第一个模型:

class Team extends Eloquent {
    public function players() {
        return $this->hasMany('Player');
    }
}

第二个模型:

class Player extends Eloquent {
    function team() {
        return $this->belongsTo('Team');
    }
}

在我的控制器中,我可以使用 $player->team 但 $team->players 总是返回 null。

如果我尝试 var_dump $team->players() (我应该看到关系描述),它 returns 一个错误:

Call to undefined method Illuminate\Database\Query\Builder::players()

这是我的控制器的样子:

class HomeController extends BaseController {
    public function showTeam($slug) {
        $team = Team::where('slug','=',$slug)->first();

        // this works fine
        $player = Player::find(1);
        var_dump($player->team);

         // this works, too.
         $players = Player::where('team_id','=',516)->get();
         var_dump($players);

         $team = Team::where('slug','=',$slug)->first();
         var_dump($team->players);  // returns null
         var_dump($team->players()); // throws an error

        return View::make('team')
            ->with('team', $team);
    }
}

有线索吗?非常感谢!

感谢 Quasdunk 的评论,我发现了这个错误。

composer dump-auto 

告诉我我有两倍的 "Team" class。

Warning: Ambiguous class resolution

我 copy/pasted 一个模型文件,忘记更改其中的 class 名称。改名为class.

后问题解决了