我不知道今天我做错了什么,我无法在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->玩家总是重新调整null。
如果我尝试使用var_dump $ team-> players()(我应该看到关系描述),它会返回错误:
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);
}
}
任何线索?非常感谢你!
答案 0 :(得分:1)
感谢Quasdunk评论,我发现了这个错误。
composer dump-auto
告诉我,我有两次“团队”课程。
Warning: Ambiguous class resolution
我复制/粘贴了一个模型文件,忘了更改其中的类名。我重命名这个课后问题就解决了。