我需要重新生成页面的 URL,删除附加参数。例如:当我收到:
https://example.com/bao1/bao2/?removeMe1=anything&keepMe1=anything&removeMe2=&keepMe2=anything
我只想展示这个:
https://example.com/bao1/bao2/?keepMe1=anything&keepMe2=anything
我自动装配了请求(我喜欢自动装配):
public function __construct(RequestStack $httpRequest)
{
$this->httpRequest = $httpRequest;
}
然后我像这样玩:
public function getCleanUrl()
{
// HttpFoundation\Request
$currentHttpRequest = $this->httpRequest->getCurrentRequest();
// Trying to remove the parameters
currentHttpRequest->query->remove("removeMe1");
//
return $currentHttpRequest->getUri()
}
query->remove("removeMe1")
有效,但是当我调用时,我getUri()
仍然得到完整的输入 url,就好像 remove() 从未调用过一样。我想我可能错过了打电话给某种$currentHttpRequest->regenerate()->getUri()
但我找不到任何东西。