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し、また/behavior/create。どのページが要求されているかを判断できる必要があります。
カスタムハンドラー(doSelectByDomain)の目的は、を考慮に入れ、domain_slugドメインも正しい場合にのみページを取得/表示することです。ただし、私が見つけたdomain_slugのは、アクションの$requestパラメーターでパラメーターが使用可能であっても、取得するものに織り込むことができるように、カスタムハンドラーにパラメーターを取得する方法がないということです。
モデルから直接オブジェクトにアクセスできることはわかっていsfContextますが、それはせいぜいエレガントではなく、MVCを壊します。本当に良い方法がないのなら、私はそれを使うことを恐れませんが、あるに違いないようです。symfonyはsetListCriteriaルートをリストするためのメソッドを提供していますが、オブジェクトルートに似たものは見つかりません。
ヘルプ?ありがとう。