2012-07-15 78 views
0

翻閱Symfony文檔,我找到了一種方法來確保帶有「標記」字段的表單。我試圖實現這一點,表單生成一個令牌,但它不會將它傳遞到「showSuccess.php」頁面的URL中,因此它現在顯示我的_admin.php部分。Symfony Tokenized URL無法正常工作

我認爲它必須處理路由,但我的路由與他們一樣,它仍然無法正常工作。

car: 
    class: sfDoctrineRouteCollection 
    options: { model: car, column: token } 
    requirements: { token: \w+ } 

car_show: 
    url: /car/:iditem.:sf_format 
    class: sfDoctrineRoute 
    options: { model: car, type: object } 
    param: { module: car, action: show, sf_format: html } 
    requirements: { iditem: \d+, sf_method: get } 

現在的形式本身需要在URL中的令牌場,但是當我提交表單它應該是「標記的URL」傳遞到成功頁面,這樣的部分可以顯示,但URL默認到「iditem」字段而不是「標記」字段,所以我的部分不呈現。

我發現如果將第二條路由的名稱更改爲其他名稱(或刪除它),則標記化的URL將起作用。但是,那麼普通的URL不會。

這是我需要在類文件中更改的東西嗎?

這是我的參考。 Symfony Documentation

回答

0

我其實已經想通了。第一組路線的「sfDoctrineCollection」創建了一個「car_show」路線,所以我放在那裏的路線覆蓋了它。我所做的只是將第二條路線的名稱更改爲不同的東西,並且工作正常。

car: 
    class: sfDoctrineRouteCollection 
    options: { model: car, column: token } 
    requirements: { token: \w+ } 

car_show_id: 
    url: /car/:iditem.:sf_format 
    class: sfDoctrineRoute 
    options: { model: car, type: object } 
    param: { module: car, action: show, sf_format: html } 
    requirements: { iditem: \d+, sf_method: get } 

我只是不得不更新所有鏈接中舊路由的所有引用。