我正在尝试修改进入Symfony内核的Url,但保留所有其他内容不变。尝试过使用Request::create
但该方法替换了请求中的所有其他变量。
如何做到这一点?
答案 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);