是否有可能在Laravel 4.2中使用Redirect::to()
重定向到使用GET参数的网址?
我正在尝试在用户登录后将用户重定向到请求的页面。
如果您未登录并访问授权页面,我会在会话中保存完整的请求网址(此网址可能类似于https://page.com/settings
或https://page.com/post/23
或https://page.com/post/23?show=full
。变体)。
当您登录并且会话中存储了网址时,我会使用Redirect::to(https://page.com/post/23)
在前两种情况下没有问题,但是当我使用Redirect::to(https://page.com/post/23?show=full)
时,GET参数被忽略。
是否可以选择重定向到包含GET参数的网址?
答案 0 :(得分:1)
您的申请存在问题。如果我理解正确,您的查询参数(例如:?param=true¶m2=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(),它完全符合您的要求。
答案 1 :(得分:0)
答案 2 :(得分:0)
为什么不重定向:: back()? auth过滤器应能够将所有非authed请求重定向到登录页面,然后将用户Redirect :: back()重定向到上一个访问过的页面。
编辑:filter,而不是中间件。
答案 3 :(得分:0)
在Laravel中,默认情况下,如果您使用的是auth中间件,则此功能可用,如下所示:
Route::group(array('before' => 'auth'), function(){
//authorized routes
});
示例强>
如果用户没有登录,则访问网址" example.com/User?abc = 123",这是一条授权路线。
然后,用户将自动重定向到登录页面。
成功登录后,用户将自动重定向到首次请求的网址(" example.com/User?abc = 123")