2012-09-28 75 views
4

這似乎是有史以來最愚蠢的問題,但我似乎無法弄清楚。我有一個頁面需要重定向到一個複雜的路線,我似乎無法生成URL。重定向到一個簡單的路線很容易:Symfony2 GenerateURL複雜的路線

return $this->redirect($this->generateUrl('testnumber')); 

但是,我想要路由到:testnumber/1/question/4。我怎樣才能完成這個令人難以置信的簡單任務?我在文檔和Google中找到的唯一一件事是允許我添加參數,而不僅僅是創建一個複雜的路線。例如:

generateURL('testnumber', array('testid'=>1, 'question'=>4)) 

使得/ testnumber testid = 1個&問題= 4,我不希望有一個網址?

編輯:是的,我已經有在YML文件中創建的路線。我根本無法生成鏈接到它的URL。

 return $this->redirect($this->generateUrl(???????????),true)); 

這是我的路線:

@Route("/testnumber/{testid}/question/{question}", name="testnumber") 

symfony的文件只顯示瞭如何生成一個網址爲 「testnumber/1」,我需要生成 「testnumber/1 /問題/ 4」。

+0

你的'routing.yml'文件中有一個名爲'testnumber'的路由,它具有'testid'和'question'作爲參數嗎?看[這裏](http://symfony.com/doc/2.0/book/routing.html)爲例。 – Squazic

+0

你可以請你說明你如何定義你的路線? –

回答

21

對於

generateURL('testnumber', array('testid'=>1, 'question'=>4)) 

工作,只要你想,你的路線必須看起來像(例如使用註釋)

@Route("/testnumber/{testid}/question/{question}", name="testnumber") 

如果不界定 「testid」 & 「問題」 參數你的路線,他們將被添加到查詢字符串(作爲GET參數附加在URL的末尾)

generated_route?test_id=X&question=X 

查找here更多相關示例。

+0

我的路線工作正常。我想弄清楚如何生成重定向到該路線的URL。謝謝! – rooter

+0

你能否用你的路線定義更新你的問題? –

+0

該路線與您輸入的路線完全相同。我只是想知道如何使用generateurl方法來生成。 ('/ testnumber/{testid}/question/{question}「,name =」testnumber「) – rooter