我有一个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
方法,但我找不到任何类似的对象路由。
帮助?谢谢。