当用户点击个人资料链接时:
<li>
<a href="{!! route('user.show', Auth::user()->username) !!}">My Profile</a>
</li>
调用 UserController@show 方法。
<?php
// routes.php
Route::get('profile/{username}', 'UserController@show')->name('user.show');
// UserController.php
public function show($username)
{
$user = User::whereUsername($username)->first();
return view('user.show', compact('user'));
}
并向用户返回一个 View 响应。
@更新
如果你需要的只是将控件重定向到 UserController@show 方法,你可以这样做:
<li>
<a href="{!! route('user.profile', Auth::user()->username) !!}">My Profile</a>
</li>
<?php
// routes.php
Route::get('profile/{username}', function ($username) {
return redirect()->route('user.show', Auth::id());
})->name('user.profile');
现在如果你想自定义 UserController@show 动作:
<li>
<a href="{!! route('user.profile', Auth::user()->username) !!}">My Profile</a>
</li>
调用 UserController@show 方法。
<?php
// routes.php
Route::resource('user', 'UserController', ['except' => ['show']);
Route::get('profile/{username}', 'UserController@profile')->name('user.profile');
现在您可以根据需要删除 UserController@show 方法或将配置文件方法名称更改为显示。
// UserController.php
public function profile($username)
{
$user = User::whereUsername($username)->first();
return view('user.show', compact('user'));
}