如何在 Laravel 6 中使用动态字段返回视图

我有一个名为 的 html 页面profile.blade.php,其中包含一个锚标记:


<a href="{{ route('profile', $user->id) }}">{{$user->name}}</a>

我有这样的路线:


Route::get('/profile/{id}', 'ProfilesController@index')->name('profile');

我有一个ProfilesControllerindex 方法返回一个拥有配置文件的用户:


public function index()

{

   $userId = //somehow get the data sent from the anchor tag


   $user = $this->usersService->getProfileOwner($userId);


   return view("profile", [

      'user' => $user ?? []

   ]);

}

如何更改此代码,例如当 id 为 1 的用户访问 id 为 2 的用户的个人资料时,索引函数将用户 2 的详细信息返回到blade模板?


拉风的咖菲猫
浏览 178回答 3
3回答

慕斯709654

Laravel 带有一个方便的路由模型绑定,因此您可以使用依赖注入直接从路由 URL 获取模型public function index(User $user){&nbsp; &nbsp;return view("profile", [&nbsp; &nbsp; &nbsp; 'user' => $user ?? []&nbsp; &nbsp;]);}<a href="{{ route('profile', ['user' => $user]) }}">{{$user->name}}</a>Route::get('/profile/{user}', 'ProfilesController@index')->name('profile');

慕运维8079593

Laravel 自动绑定类到方法use App\User;public function index(User $user){&nbsp; &nbsp;return view("profile",compact('user'));}

尚方宝剑之说

正如上面的答案,我建议您使用模型绑定。但是在您的代码中,您可以执行以下操作:public function index($id){&nbsp; &nbsp; $user = $this->usersService->getProfileOwner($id);&nbsp; &nbsp; return view("profile", [&nbsp; &nbsp; &nbsp; &nbsp;'user' => $user ?? []&nbsp; &nbsp; ]);}如果 $id 总是 int,你也可以输入提示。
打开App,查看更多内容
随时随地看视频慕课网APP