试图用laravel放入网址

时间:2018-04-07 02:00:09

标签: php laravel laravel-5

因此,我尝试构建此应用程序,其中用户在域名中使用其用户名(例如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页面,我该如何修复呢?

3 个答案:

答案 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']);

我不知道你为什么要使用群组前缀?你只需要正常定义一个获取路由,你的控制器看起来不错,它应该工作! :)