2014-01-12 64 views
0

工作我遇到了我的路線可選參數的一些問題。我認爲我根據documentation正確地做了它,但它仍然不起作用。路線可選參數沒有在Symfony的2

因此,我已下列路線定義:

test_wizard: 
    pattern: /test/wizard/{testName}/{step}/ 
    defaults: { _controller: TestBundle:Wizard:wizard, step: 1 } 

並希望的路線,以便能夠通過/測試/嚮導/ someTestName被調用,然後在步驟參數填充的默認值1但每次我打電話的路線正好與測試名稱,我得到,而不是執行以下操作:

No route found for "GET /test/wizard/someTestName" 

當我打電話由/測試/精靈/ someTestName/1/itworks就好路線。爲什麼我爲step定義的默認值不起作用?有什麼建議麼?謝謝。

+1

嘗試刪除您的路線定義 – brpaz

+0

酷的最後一個/。那就是訣竅。謝謝。但現在每當我嘗試路由/測試/嚮導/ someTestName/1 /我得到了「找不到路由」消息。爲什麼Symfony無法處理/ 1和/ 1 /一樣? – RaHe

回答

1

這是不可能使一個參數可選,如果你有一個角色後(/你的情況)。你必須定義兩個途徑:

test_wizard: 
    pattern: /test/wizard/{testName} 
    defaults: { _controller: TestBundle:Wizard:wizard } 

test_wizard_optional: 
    pattern: /test/wizard/{testName}/{step}/ 
    defaults: { _controller: TestBundle:Wizard:wizard, step: 1 }