繁体   English   中英

Laravel 4.2使用GET Params重定向:: to

[英]Laravel 4.2 Redirect::to with GET Params

是否有可能在Laravel 4.2中使用Redirect::to()使用GET参数重定向到url?

我试图在用户登录后将其重定向到请求的页面(如果他们没有登录)。

如果您未登录并访问授权页面,则我会将完整的请求网址保存在会话中(该网址可以是https://page.com/settingshttps://page.com/post/23https://page.com/post/23?show=full 。很多变体)。

当您登录并在会话中存储一个URL时,我使用Redirect::to(https://page.com/post/23)重定向您

在前两种情况下没有问题,但是当我使用Redirect::to(https://page.com/post/23?show=full) GET参数将被忽略。

是否可以使用包含GET参数的方法重定向到url?

您的应用程序有问题。 如果我对您的理解正确,则重定向后,您的网址中将不存在您的查询参数(例如: ?param=true&param2=1 )。

考虑以下示例:

Route::get('/test', function () {
    return Redirect::to('http://localhost:8000/test2?with=params');
});

Route::get('/test2', function () {
    echo '1';
});

当我尝试访问: localhost:8000/test我被重定向到: http://localhost:8000/test2?with=params

这是预期的行为。 您可以发表一个示例,在其中进行重定向吗?

我也建议使用: Redirect :: intended()本身就可以完成您想要的操作。

尝试这个:

您可以像https://page.com/post/23/showFull那样传递它

您可以通过以下方式获得它:

Request::segment(3);

为什么不重定向:: back()? auth过滤器应该能够将所有未经身份验证的请求重定向到登录页面,然后将用户Redirect :: back()重定向到上一个访问的页面。

编辑: 过滤器 ,而不是中间件。

在Laravel中,默认情况下,如果您使用auth中间件,则此功能可用,如下所示:

Route::group(array('before' => 'auth'), function(){

//authorized routes

});

如果用户未登录,则正在访问URL“ example.com/User?abc=123”,这是授权路由。

然后,用户将自动重定向到登录页面。

成功登录后,用户将被自动重定向到最先请求的网址(“ example.com/User?abc=123”)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM