URL无法从Laravel 5中的路由获取用户名

时间:2019-03-11 08:12:30

标签: laravel laravel-5 eloquent

我正在尝试通过URL domian.com/author/page/{username}显示作者页面。

这是路线:

Route::get('author/page/{username}', 'FrontendAuthorController@index');

这里是控制器(FrontendAuthorController @ index):

public function index($username)
{
    $user = BasicInfo::where('username', $username)->first(); 

    //'username' is a field of BasicInfo Model. 
    //BasicInfo belongs to User model. 
    //So, we can get user id by $user->user_id according to eloquent rule. 

    $author = User::findOrFail($user->user_id);

    return view('frontend.author', compact('author'));
}

但是我看到此消息

  

对不起,找不到您要查找的页面。

如果我尝试使用此路径domian.com/author/page/{username}/{id}和此参数function index($username, $id)来获取视图,那么我得到了视图!我不想在路线/网址中显示ID。我该如何解决?

3 个答案:

答案 0 :(得分:1)

提供路由名称

Route::get('author/page/{username}', 'FrontendAuthorController@index')->name('author_page');

然后检查路线:

php artisan route:list

使用以下功能进行测试:

public function index(Request $request,$username)
{
   return response($username);
}

然后更新,

public function index($username)
{
    if(isset($username)){
       $user = BasicInfo::where('username', $username)->first(); 
       if($user){
           $author = User::findOrFail($user->user_id);
           return view('frontend.author', compact('author'));
       }else{
          // user not found , redirect to home page or 404
         abort(404);
       }
    }else{
          // $username not set , redirect to home page or 404
          abort(404);
    }
}

答案 1 :(得分:1)

我看不到您的代码中有任何错误。

我的猜测是,您发布的route上方有route,并且使用相同的网址,或者您使用的resourceful route也使用相同的网址。

答案 2 :(得分:0)

据我所知,您需要以下路线才能工作:-

domian.com/author/page/{username}
domian.com/author/page/{username}/{id}

第一个不适用于您,但是如果添加function index($username, $id)

按照下面的解决方案将可以使用,或者您可以:-

将路线转换为

Route::get('author/page/{username}/{id?}', 'FrontendAuthorController@index');

这表明您的路线应有author name位作者,也可以有id位作者。如果您不提供ID,则可以选择使用它。

根据上述操作,也将$ id添加到函数参数:-

function index($username, $id)

使用此解决方案,以下两个网址都可以使用

domian.com/author/page/rakesh
domian.com/author/page/rakesh/1