Ben kimin teklik PageDomain
gelen bir Page
nesne var. Şema yapılandırılmış olan page
tabloda ilişki oluşturmak için bir page_domain_id
alanı içerecek şekildedir. Bir sayfayı göstermek için, ben bir executeShow
eylem ve bir özel işleyici var. Benim rota bu gibi görünüyor:
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]
Bir örnek olarak, sahip olabilir /audience/create
ve /behavior/create
. Ben talep ediliyor hangi sayfa belirlemek gerekiyor.
Özel işleyicisi niyet (doSelectByDomain
) domain_slug
faktör ve etki alanı da doğru olup olmadığını sadece / bir sayfa göstermek almak olduğunu. Ne bulma kulüpler olsa, bir domain_slug
parametresi eylemin $request
parametrede kullanılabilir olsa, ben benim özel işleyicisi almanın hiçbir yolu olması bu yüzden olabilir Alınan ne çarpanlarına.
Benim modeli doğrudan sfContext
nesneye erişebilir fark, ancak bu en iyi inelegant bulunuyor ve MVC kırar. Ben daha iyi bir yol gerçekten var ise bunu kullanmak için korkmuyorum, ama orada olmalı gibi görünüyor. Symfony liste yolları için setListCriteria
yöntemini sunuyor, ama nesne yolları için benzer bir şey bulamıyorum.
Yardım? Teşekkürler.