所以我决定改变应用程序中url的外观。目前的外观是这样的:/user/profile
。这是用户登录后看到的页面。
我想将$username
传递给网址,如下所示:/name_of_the_user/profile
这是我到目前为止所尝试的:
路线:
Route::get('/{user}/profile', [
'uses' =>'UserController@getProfile',
'as' => 'user.profile',
'middleware' => 'auth'
]);
链接:
<a href="{{ route('user.profile',auth()->check() ? auth()->user()->username : 'default') }}">User Profile</a>
这部分有效。
当用户登录时,他收到此错误:
UrlGenerationException.php第17行中的UrlGenerationException: 缺少[Route:user.profile] [URI:{user} / profile]的必需参数。
但如果我重新加载页面就可以了。用户名成功传递给url。
如何修复此错误?
我应该说用户前往/user/signin
登录并将其重定向到/user/profile
感谢任何帮助!
答案 0 :(得分:1)
您需要为未登录的用户添加一些默认值:
auth()->check() ? auth()->user()->username : 'default'
如果您想重定向未登录的用户,请使用auth
middleware或自定义middleware。
答案 1 :(得分:0)
<a href="{{ route('user.profile', Auth::user()->username) }}">User Profile</a>
如果不能正常工作:
<a href="{{ route('user.profile', Auth::user()->username ? : 'nousernamefound') }}">User Profile</a>