在laravel 5.3中重定向回请求的页面

时间:2016-12-03 15:59:43

标签: php laravel authentication redirect laravel-5

我有3种类型的用户,如客户,零售商和管理员。在客户方面,他们无需初次登录即可访问服务。但是,有些路线需要登录,例如购物车页面需要客户登录。我有一个数据库char字段来查找用户表中的用户类型。我成功登录后重定向回不同用户类型的索引页面。但是假设一个尚未登录系统访问服务的客户突然点击了需要授权的路由,那么它将重定向到用户可以登录的登录寻呼机。但是在登录之后它们也被重定向回到索引页面而不是请求登录的页面。如何将其重定向回请求的页面。以下是代码块。谢谢

Web.php(这里只显示一部分其他客户路由不在auth中间件内)

Route::group(['middleware' => 'auth'], function () {

Route::get('/cart','searchController@viewCart' );
Route::get('/cart/changeStatus','searchController@changeCartStatus' );

});

登录控制器验证功能

protected function authenticated($request, $user)
{
    if($user->type === 'c') {
        return redirect('/home');
    }
    else if($user->type === 'a') {
        return redirect('/admin/home');
    }
    else if($user->type === 'r') {
        return redirect('/retailer/home');
    }

}

2 个答案:

答案 0 :(得分:4)

Laravel为您保留这一点,您只需要:

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

home是后备路线,因此您可以

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

答案 1 :(得分:0)

你可以使用return Redirect :: back();