1

我正在使用 symfony 2.2 并且我有一个问题,当我尝试删除一个 get 变量时,例如这个 url 中的消息: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
}
4

1 回答 1

4

$request->query->remove('message');只会从ParameterBag中删除参数。

如果要从 URL 中删除它,则必须重定向到不带参数的 URL。

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

于 2013-07-15T21:48:32.283 回答