2011-06-01 76 views
0

怎樣的sfDoctrineRoute類的工作symfony的sfDoctrineRoute模型問題

例如我不能完全理解,我有以下途徑:

Comment: 
    class: sfDoctrineRouteCollection 
    options: 
    prefix_path: :username/comment 
    module: comment 
    model: Comment 
現在

,在commentActionsexecuteNew()方法,該代碼:

$this->getRoute()->getObject() 

將返回我的數據庫中的第一個Comment對象。當然我可以手動創建一個new Comment()對象,但是使用sfDoctrineRoute類代替sfRoute有什麼好處?

回答

0

在executeNew的情況下,使用原則路線幾乎沒有任何好處。

請考慮使用executeEdit方法(更新,刪除和顯示也一樣)。

一個網址可能是這樣的:

/評論/ 5 /編輯

(或你的情況,/名爲myUsername /評論/ 5 /編輯)

$這個 - > getRoute() - > getObject()將從數據庫返回註釋5 - 節省您加載它的麻煩(只有一行或兩行代碼,但仍然)。而且,一個簡潔的功能,如果數據庫中沒有註釋5,它會自動處理這個並導致一個404錯誤 - 所以你也不需要擔心。

+1

例如,如果您決定切換到基於slug的url,添加到專業人員列表中,您只需更改一些路由選項,而不是在所有操作中更改代碼。 – Dziamid 2011-06-03 08:25:56

+0

@dziamid另一個好點,ta – benlumley 2011-06-03 13:42:30

+0

是的,你對..非常感謝! :)順便說一句,有沒有辦法阻止它從我的數據庫中取出executeNew的任何記錄? – tamir 2011-06-04 19:24:37