Bonjour à tous,
Je façonne un site à l'aide du framework Silex et je rencontre un problème avec mes routes.
En effet mon menu, extrait de ma bdd(ça doit être le cas obligatoirement), a la route suivante :
$app->match('/afficher/{id}', "ControleurAffichage::affichage"); //route paramétrée avec l'id du menu
L'id est donc celui du menu sélectionné. Au début lorsque je naviguais une première fois dans mon menu ma page s'affichait, mais la seconde fois non car mes route se superposait ce qui donnait lieu à une route inexistante car en effet Il monte "afficher/id" sur la route actuelle qui est déjà "afficher/id" et supprime seulement ce qu'il y a derrière le dernier " / " :
URL première navigation : http://localhost/XX/public/afficher/10
URL deuxième navigation : http://localhost/XX/public/afficher/afficher/9
J'ai trouvé une solution en analysant mon URL :
1 2 3 4 5
| $monUrl = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
if(substr($monUrl, 35, 9) == "afficher/") //si mon url se termine par "afficher/id" la route suivante ne sera que l'id
{ $route = null; }
else
{ $route = "afficher/"; } |
Cela marchait donc, mais maintenant que j'ai d'autre route que "afficher", cela ne marche pas mes routes se superposent encore :
URL autre route : http://localhost/XX/public/afficher/modifierContenu/1
URL souhaité : http://localhost/XX/public/modifierContenu/1
J'aimerais donc que silex supprime pas un "/" mais deux "/"... Des idées ?
Partager