1

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

当用户未登录时,我试图在登录后将用户重定向到请求的页面。

如果您没有登录并且您访问了授权页面,我会在会话中保存完整的请求 url(这个 url 可以是https://page.com/settings orhttps://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?

4

4 回答 4

1

你的申请有问题。如果我理解正确,您的查询参数(例如?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(),它完全可以自己做你想要的。

于 2016-04-14T11:45:24.880 回答
0

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

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

//authorized routes

});

例子

如果用户没有登录,正在访问 url “example.com/User?abc=123”,这是一个授权路由。

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

成功登录后,用户将自动重定向到第一个请求的 url ("example.com/User?abc=123")

于 2016-04-29T20:24:00.590 回答
0

尝试这个:

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

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

Request::segment(3);
于 2016-04-14T10:12:43.190 回答
0

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

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

于 2016-04-14T12:00:39.813 回答