Laravel显示路线中的回程关系

当我创建一个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方法可以做到这一点?还是我只是在发明热水,并且应该采用我在上面的解决方案中使用的方法?


慕运维8079593
浏览 140回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP