当我创建一个CRUD控制器时,这是默认情况下创建的显示路线:
/**
* Display the specified resource.
*
* @param \App\Team $team
* @return \Illuminate\Http\Response
*/
public function show(Team $team)
{
//
}
$team是此处的对象,是的实例Team。如果执行此操作,则将正确的对象传递给刀片:
public function show(Team $team)
{
return view('admin.teams.show', ['team' => $team]);
}
但是,Team与另一个名为的模型具有多对多关系Player,并且这种关系从Team侧面定义为:
public function players() {
return $this->belongsToMany(Player::class);
}
在我的show方法中,我想将$ team及其相关的玩家退还给我们。但是由于$ team已经是一个对象,而不是查询生成器,所以现在做这样的事情为时已晚
$team->with('players')
那么,如何在这里找到相关玩家呢?我知道我可以做类似的事情:
public function show(Team $team)
{
$team_extended = Team::where('id', $team['id'])->with('players')->first();
return view('admin.teams.show', ['team' => $team_extended]);
}
但是感觉就像在破解默认情况下应该存在的功能。是否有内置的Laravel方法可以做到这一点?还是我只是在发明热水,并且应该采用我在上面的解决方案中使用的方法?