我有一个名为 的 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模板?
3 回答
慕斯709654
TA贡献1840条经验 获得超5个赞
Laravel 带有一个方便的路由模型绑定,因此您可以使用依赖注入直接从路由 URL 获取模型
public function index(User $user)
{
return view("profile", [
'user' => $user ?? []
]);
}
<a href="{{ route('profile', ['user' => $user]) }}">{{$user->name}}</a>
Route::get('/profile/{user}', 'ProfilesController@index')->name('profile');
慕运维8079593
TA贡献1876条经验 获得超5个赞
Laravel 自动绑定类到方法
use App\User;
public function index(User $user)
{
return view("profile",compact('user'));
}
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
正如上面的答案,我建议您使用模型绑定。
但是在您的代码中,您可以执行以下操作:
public function index($id)
{
$user = $this->usersService->getProfileOwner($id);
return view("profile", [
'user' => $user ?? []
]);
}
如果 $id 总是 int,你也可以输入提示。
- 3 回答
- 0 关注
- 177 浏览
添加回答
举报
0/150
提交
取消