J'ai un objet Page
dont l'unicité provient de PageDomain
. Le schéma est configuré de sorte que la table page
contienne un champ page_domain_id
pour créer la relation. Pour afficher une page, j'ai une action executeShow
et un gestionnaire personnalisé. Mon parcours ressemble à ceci:Injecter des critères dans un objet 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]
A titre d'exemple, je pourrais avoir /audience/create
et aussi /behavior/create
. Je dois être en mesure de déterminer quelle page est demandée.
L'intention du gestionnaire personnalisé (doSelectByDomain
) est de prendre en compte le domain_slug
et de récupérer/afficher une page uniquement si son domaine est également correct. Ce que je trouve, cependant, c'est que même si un paramètre domain_slug
est disponible dans le paramètre $request
de l'action, je n'ai aucun moyen de l'obtenir à mon gestionnaire personnalisé afin qu'il puisse être factorisé dans ce qui est récupéré.
Je me rends compte que je peux accéder à l'objet sfContext
directement à partir de mon modèle, mais c'est au mieux inélégant et rompt MVC. Je n'ai pas peur de l'utiliser s'il n'y a vraiment pas de meilleur moyen, mais il semble que ce soit le cas. Symfony propose une méthode setListCriteria
pour les routes de liste, mais je ne trouve rien de similaire pour les routes d'objets.
Aide? Merci.