我搜索了很多论坛,并没有在这里找到我的错误。 我不太喜欢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
答案 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
}