因此,我尝试构建此应用程序,其中用户在域名中使用其用户名(例如domain.com/hisusername),这就是我所做的,所以这是我的路线
Route::group(['prefix' => '/{username}'], function($username){
Route::get('/', 'UserController@UserProfile');
});
我的控制器
public function UserProfile($username){
$user = User::where('username', $username)->first();
if (!$user) {
abort(404);
}
return view('pages.profile')
->with('user', $user);
}
它运行正常问题是当我尝试添加另一条路线时,它与用户名混淆并返回404页面,我该如何修复呢?
答案 0 :(得分:0)
Laravel从上到下渲染路线。通常当我遇到这个问题时,这是因为我需要把我的“全能”路线放在所有其他路线之下。
话虽如此,我强烈建议您使用domain.com/u/user之类的内容,以避免与现有网页冲突。
这可能看起来像是一个延伸,但如果你曾经有一个用户名'登录'的人,他们可能永远无法访问他们的帐户。
答案 1 :(得分:0)
试试这个
Route::group(['prefix' => 'user'], function($username){
Route::get('/{username}', 'UserController@UserProfile');
Route::get('/otherinfo', 'UserController@otherinfo');
});
Route::get('/more/other/route', 'OtherController@methodinfo');
在您的浏览器中,它将显示为。 sample.com/user/yourUsername
答案 2 :(得分:0)
好的,这似乎很容易:
Route::get('/{username}', ['uses' => 'UserController@UserProfile']);
我不知道你为什么要使用群组前缀?你只需要正常定义一个获取路由,你的控制器看起来不错,它应该工作! :)