Bonjour.
Je me trouve actuellement devant un petit problème de routage.
J'ai un module que l'on appelera "mod".
Ce module dépend de deux classes/tables differentes "class_a" et "class_b". Chacune de ces classes possède un attribut "slug".
J'ai créé deux routes différentes :
Or, quand dans les templates nécessaires, je fais par exemple un :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 route_class_a: url: /mod/montexte_a/:slug/ class: sfDoctrineRoute param: {module: mod, action: monAction_a} options: { model: class_a, type: object } route_class_b: url: /mod/montexte_b/:slug/ class: sfDoctrineRoute param: {module: mod, action: monAction_b} options: { model: class_b, type: object }
url_for("/mod/montexte_a/<?php class_a->getSlug();?>") j'obtiens seulement :
cheminJusquaRacine/mod/montexte_a/
sans le slug. Pourtant le slug est bien juste après vérification.
Si j'enlève "montexte_a", tout fonctionne bien (que pour la première route ce qui est logique car il ne peut pas faire la différence entre les deux).
Et les seules autres routes que j'ai sont :
Avez-vous une idée de pourquoi cela ne fonctionne pas ?
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 mod: url: /mod/ param: {module: mod, action: index} # default rules homepage: url: / param: { module: accueil, action: index } # generic rules # please, remove them by adding more specific rules default_index: url: /:module/ param: { action: index } default: url: /:module/:action/*
Je sais que je peux résoudre le problème en appelant directement la route que je veux mais j'aimerais savoir le faire sans cela.
Partager