我正在研究symfony 2.2并且我有一个问题,当我尝试在此url中删除一个get变量,例如message:myurl?message = mymessage
它不起作用。
public function myfunction1() {
....
return $this->redirect($this->generateUrl('_admin_credit', array("message" => $message))); // generate the url : myurl?message=mymessage
}
/**
* @Route("/credit", name="_admin_credit")
*/
public function getCreditAction($) {
$request = $this->getRequest();
$message = $request->query->get('message'); // this works
$request->query->remove('message'); // this work in the function but do not change the url
return $this->render('MyBundle:Admin:credit.html.twig', array(
'message' => $message
)); // still the same url : myurl?message=mymessage
}
答案 0 :(得分:3)
$request->query->remove('message');
将仅从ParameterBag删除参数。
如果您要将其从网址中删除,则必须redirect为不带参数的网址。
另外,如果您想保留message
的值,可以使用Flash Message将其存储在两个请求之间。这意味着:您可以获取参数,存储它,重定向到另一个URL并从会话中调用一次值。