这是可行的,但它很混乱。我一直在摆弄参数包,但没有什么比我的代码工作得更好。
我只想重定向到同一页并删除一个查询字符串,但要编写比下面更好的代码:
$r = $this->request;
$url = $r->getUri();
$replace = "abc=" . $r->query->get( 'abc' );
$url = str_replace("?".$replace, "?", $url);
$url = str_replace("&".$replace, "", $url);
$response = new RedirectResponse($url);
$this->event->setResponse($response);发布于 2013-03-18 20:57:46
要删除整个查询字符串,请执行以下操作:
$response = new RedirectResponse($request->getPathInfo());要仅从查询字符串中删除参数,请执行以下操作:
$route = $request->get('_route');
$params = array_merge(
$request->get('_route_params'),
$request->query->all()
);
unset($params['param_to_remove']);
// or $params['param_to_remove'] = null;
$response = new RedirectResponse($this->router->generate($route, $params);https://stackoverflow.com/questions/15477147
复制相似问题