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

Posted

技术标签:

【中文标题】在 laravel 5.3 中重定向回请求的页面【英文标题】:Redirect back to requested page in laravel 5.3 【发布时间】:2017-04-18 09:28:50 【问题描述】:

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

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');
    


【问题讨论】:

【参考方案1】:

Laravel 会为你保留它,你只需要:

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

home 是一个后备路由,所以你可以

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

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于在 laravel 5.3 中重定向回请求的页面的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 5.3 中重定向路由

在 Laravel 4 中重定向回时保留表单值

在 Laravel 中重定向域名

维护模式与中间件在 Laravel 中重定向

在laravel中重定向到外部url时如何保留会话数据

laravel 路由重定向问题(laravel 5.3)