我有一個Page
對象,其唯一性來自其PageDomain
。架構配置爲使page
表包含一個page_domain_id
字段來創建關係。爲了顯示一個頁面,我有一個executeShow
動作和一個自定義處理程序。我的路線是這樣的:將標準注入到sfPropelRoute對象中
page_show:
url: /:domain_slug/:slug
class: sfPropelRoute
options:
model: Page
type: object
method_for_criteria: doSelectByDomain
param: { module: page, action: show }
requirements:
sf_method: [get]
通過舉例的方式,我可能有/audience/create
也/behavior/create
。我需要能夠確定哪個頁面被請求。
自定義處理程序(doSelectByDomain
)的目的是考慮domain_slug
,並且只在其域名也正確的情況下檢索/顯示頁面。但我發現,儘管參數在動作的$request
參數中可用,但我無法將其獲取到自定義處理程序,因此可以將其分解爲檢索的內容。
我意識到我可以直接從我的模型訪問sfContext
對象,但這樣做最多不過分,並打破了MVC。如果沒有更好的方法,我不害怕使用它,但似乎必須有。 Symfony爲列表路由提供setListCriteria
方法,但我找不到任何類似的對象路由。
幫助?謝謝。