在Symfony2中修改请求对象中的URL

时间:2016-05-31 15:58:53

标签: php symfony url request

我正在尝试修改进入Symfony内核的Url,但保留所有其他内容不变。尝试过使用Request::create但该方法替换了请求中的所有其他变量。

如何做到这一点?

2 个答案:

答案 0 :(得分:2)

继续做一些研究,发现可以使用复制方法完成。例如:

$new_url = $request->duplicate(null, null, null, null, null, array('REQUEST_URI' => $old_url, null));

希望这是有帮助的

答案 1 :(得分:0)

我通过搜索发现了这个问题……我不知道这是否适用于symfony 2,但是在symfony 5上,它将用唯一的一个参数“ REQUEST_URI”替换具有所有服务器参数的初始数组。

保留所有其他键的替代方法(Symfony 5):

$serverBag = $request->server;
$requestUri = $serverBag->get('REQUEST_URI');
$serverBag->set('REQUEST_URI',str_replace('/oldUrl', '/newUrl', $requestUri));
$request = $request->duplicate(null, null, null, null, null, $serverBag->all(), null);