Bonsoir,
J'ai un système "classique" d'éléments rangés dans des catégories :
shema.yml
Et dans mon système de routing, j'utilise le name de la catégorie (": PageTCategory") pour afficher un élément :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 PageTCategory: columns: name: { type: string(255), notnull: true, unique: true } description: { type: string(255) } actAs: Sluggable: unique: true fields: [name] canUpdate: true PageT: inheritance: type: concrete extends: Page columns: category_id: { type: integer, notnull: true } relations: PageTCategory: onDelete: CASCADE local: category_id foreign: id foreignAlias: PageTx
routing.yml
Mon problème vient du fait que je peux avoir n'importe quoi dans mon url dans ": PageTCategory", tant que le :slug est correcte, ca passe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 t_show: url: /tut/:PageTCategory/:slug class: sfDoctrineRoute options: { model: PageT, type: object } param: { module: tut, action: show } tuto_index: url: /tut param: { module: tut, action: index }
Quelqu'un saurait comment je pourrais contourner le problème sans avoir à vérifier l'url moi-même dans mon action ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 /tut/bonneCategorie/bonSlug : OK /tut/mauvaiseCategorie/bonSlug : OK (mauvais fonctionnement !) /tut/bonneCategorie/mauvaisSlug : erreur404 /tut/mauvaiseCategorie/mauvaisSlug : erreur404
PS: Si cela est utile, voici le code pour l'action show :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public function executeShow(sfWebRequest $request) { $this->page_t = $this->getRoute()->getObject(); }
Partager