删除GET变量symfony2

时间:2013-07-15 21:36:06

标签: symfony

我正在研究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
}

1 个答案:

答案 0 :(得分:3)

$request->query->remove('message');将仅从ParameterBag删除参数。

如果您要将其从网址中删除,则必须redirect为不带参数的网址。

另外,如果您想保留message的值,可以使用Flash Message将其存储在两个请求之间。这意味着:您可以获取参数,存储它,重定向到另一个URL并从会话中调用一次值。