无法使 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.
后问题解决了
我不知道我今天做错了什么,我无法在 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.
后问题解决了