2013-07-15 74 views
1

我工作的symfony的2.2和我有一個問題,當我試圖刪除得到變量如在此URL消息:myurl消息= mymessage刪除GET變量的Symfony2

它不工作。

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 
} 

回答

3

$request->query->remove('message');將只從ParameterBag刪除參數中。

如果你想從URL中刪除它,你必須redirect到一個沒有參數的URL。

另外,如果要保留message的值,可以使用Flash Message將其存儲在兩個請求之間。這意味着:您可以獲取參數,存儲它,重定向到另一個URL並從會話中調用一次值。