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.