在登录后将用户重定向到主页时,Laravel 5.5获取302重定向错误

时间:2018-02-11 20:33:56

标签: php laravel redirect laravel-5 http-status-code-302

我搜索了很多论坛,并没有在这里找到我的错误。 我不太喜欢laravel,所以我确定我犯的错误对于更高级的开发人员来说是显而易见的。 我的页面就是这样的。 当新用户第一次访问网站时,将无需登录,用户可以查看主页。 然后用户注册并将被重定向到电子邮件验证页面,其中包含指向主页的链接,但用户未自动登录。 用户确认她的电子邮件后,她可以去登录。 登录后,如果用户是普通用户,我希望用户被重定向到主页,如果用户是管理员,则希望用户被重定向到仪表板。 这是问题的来源。 登录后,我得到302重定向错误。 下面你可以看到我的路线和我编辑过的不同控制器。 希望我能够解释这个问题。 感谢您提前提供任何帮助。

我的web.php文件

{
    "i": {
        "hid|15#aid|9305#h|Openjobmetis Varese#a|Germani Basket Brescia#h2|VARESE#a2|BRESCIA#round|1019#nat|ita#hcolors": {
            "bg|851010#g1|920000#g2|ad0b0b#g3|800000#c|"
        },
        "acolors": {
            "bg|037f43#g1|00582d#g2|0fb966#g3|037f43#c|"
        },
        "hp|33#vp|20"
    },
    "idor": 0,
    "jr|1#t": 19,
    "t2": 30,
    "ip|#b": false,
    "v": {
        "h": 0,
        "a": 0,
        "t": 30,
        "h2": 12,
        "a2": 12
    }
}

我的Route::get('/', ['middleware'=>'web','uses'=>'HomeController@index']); Route::get('/home', ['middleware'=>'auth','uses'=>'HomeController@after_login']); Route::get('/search',['middleware'=>'web','uses'=>'HomeController@search']); Route::get('/search-all-category',['middleware'=>'web','uses'=>'HomeController@search_all_category']); Route::get('/register/register-search-cities',['middleware'=>'web','uses'=>'HomeController@register_search_cities']); Route::post('/company-results',['middleware'=>'web','uses'=>'HomeController@search_companies']); Route::get('/validate-email',function(){ return view('validate-email'); }); Route::get('/all', ['middleware'=>'guest','uses'=>'HomeController@index']); Auth::routes(); 控制器,我已覆盖LoginController.php中的authenticated功能:

AuthenticatesUsers.php

这是我的// protected $redirectTo = '/home'; protected function authenticated( Request $request, $user ) { if($user->isAdmin == '0'){ return redirect()->intended('/home'); }else if($user->isAdmin == '1'){ return redirect()->intended('dashboard.dashhome'); }else{ return redirect()->intended('/home'); } } 处理HomeController.php

routes

1 个答案:

答案 0 :(得分:0)

您的代码

 if($user->isAdmin == '0'){

            return redirect()->intended('/home');
        }else if($user->isAdmin == '1'){
            return redirect()->intended('dashboard.dashhome');
        }else{

            return redirect()->intended('/home');
        }

可以像这样进行简化(在您的评论之后,将非管理员重定向到/,否则他们将陷入循环

 if ($user->isAdmin){
     return redirect()->intended('dashboard.dashhome');
 } else {
     return redirect()->intended('/'); // return to a route not behind auth middleware to avoid loop
 }