[sf 1.4.x] Routing | Problème avec des variables de tables étrangères
Bonsoir,
J'ai un système "classique" d'éléments rangés dans des catégories :
shema.yml
Code:
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 |
Et dans mon système de routing, j'utilise le name de la catégorie (": PageTCategory") pour afficher un élément :
routing.yml
Code:
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 } |
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:
1 2 3 4
| /tut/bonneCategorie/bonSlug : OK
/tut/mauvaiseCategorie/bonSlug : OK (mauvais fonctionnement !)
/tut/bonneCategorie/mauvaisSlug : erreur404
/tut/mauvaiseCategorie/mauvaisSlug : erreur404 |
Quelqu'un saurait comment je pourrais contourner le problème sans avoir à vérifier l'url moi-même dans mon action ?
PS: Si cela est utile, voici le code pour l'action show :
Code:
1 2 3 4
| public function executeShow(sfWebRequest $request)
{
$this->page_t = $this->getRoute()->getObject();
} |