我有一个Page
对象,其唯一性来自它的PageDomain
. 架构配置为使page
表包含一个page_domain_id
用于创建关系的字段。为了显示一个页面,我有一个executeShow
动作和一个自定义处理程序。我的路线如下所示:
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
and /behavior/create
。我需要能够确定正在请求哪个页面。
自定义处理程序 ( doSelectByDomain
) 的目的是考虑domain_slug
并仅在其域也是正确的情况下检索/显示页面。但是,我发现,即使domain_slug
在操作的$request
参数中提供了一个参数,我也无法将其传递给我的自定义处理程序,以便将其考虑到检索的内容中。
我意识到我可以sfContext
直接从我的模型中访问该对象,但这充其量是不雅的,并且会破坏 MVC。如果真的没有更好的方法,我不害怕使用它,但似乎必须有。Symfony 提供了setListCriteria
一种列出路由的方法,但我找不到任何类似的对象路由。
帮助?谢谢。