Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/01/2011, 09h45   #1
Invité de passage
 
Romain Le Mercier
Inscription : avril 2010
Messages : 10
Détails du profil
Informations personnelles :
Nom : Romain Le Mercier

Informations forums :
Inscription : avril 2010
Messages : 10
Points : 1
Points : 1
Par défaut generateUrl : The route "article/3/esdfesdes" does not exist.

Bonjour !

J'ai dans un fichier action.class une redirection qui se fait comme suit :
Code :
$this->redirect($this->generateUrl('article/' . $data['articles_id'].'/esdfesdes'));
Mais je tombe sur l'erreur The route "article/3/esdfesdes".
Voici ma configuration de routage :
Code :
1
2
3
article_show:
  url: /:module/:id/:url
  param: {module: article, action: show}
Dans mes templates quand je veux accéder à une page de ce type je fait :
Code :
url_for('article/show?id='.$articles->getId().'&url='.$articles->getUrl())
Ceque j'ai tenté de faire avec le generateUrl mais je tombe sur une erreur également.

D'où viens le problème?

Romain.
Mainmich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 10h16   #2
Membre confirmé
 
Inscription : février 2009
Messages : 317
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 317
Points : 209
Points : 209
Pour passer une route dans un redirect voila comment je fais :

Dans ton cas ca donnera
Code :
$this->redirect('@article_show?module='.$tonModule.'&id='.$tonId.'&url='.$tonUrl);
insane1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 10h51   #3
Invité de passage
 
Romain Le Mercier
Inscription : avril 2010
Messages : 10
Détails du profil
Informations personnelles :
Nom : Romain Le Mercier

Informations forums :
Inscription : avril 2010
Messages : 10
Points : 1
Points : 1
Je viens de tester mais ça ne fonctionne pas...
Code :
$this->redirect($this->generateUrl('@article_show?module=article&id='.$data['articles_id'].'&url=lorem-ipsum'));
Erreur :
Code :
The route "@article_show?module=article&id=3&url=lorem-ipsum" does not exist.
Dans le code je ne comprends pas le @ et le module=article, pourquoi je dois le mettre alors qu'il est défini dans mon routage?

Romain.
Mainmich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 14h54   #4
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Le @ permet d'indiquer dans un url_for ou équivalent que le premier mot est un nom de règle de route.

La définition de ta route est fausse, tu ne peux avoir une variable :module et une constante "module: article" vu le reste, je dirais que la bonne déclaration est
Code :
1
2
3
4
 
article_show:
  url: /article/:id/:url
  param: {module: article, action: show}
Et que l'appel devient :
Code :
$this->redirect('@article_show?id='.$tonId.'&url='.$tonUrl);
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/01/2011, 08h23   #5
Invité de passage
 
Romain Le Mercier
Inscription : avril 2010
Messages : 10
Détails du profil
Informations personnelles :
Nom : Romain Le Mercier

Informations forums :
Inscription : avril 2010
Messages : 10
Points : 1
Points : 1
Ca ne marche toujours pas... Il reconnait bien la route par ce qu'il me donne l'url /article/26/ezfzef mais j'ai toujours une erreur :
Code :
Action "article/26" does not exist.
Je ne comprends pas, quelqu'un peu m'expliquer?

Romain.
Mainmich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2011, 10h23   #6
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Il doit reconnaître la route deux fois :
  • une à la génération, ce qu'il fait, mais vu que tu lui donne le nom de la route, il n'a pas d'excuse
  • une lorsque l'url arrive et qu'il doit savoir à qui la passer, et là, il semblerait ne pas comprendre ce qu'il doit faire.

Vérifie l'ordre des déclarations dans ton fichier, il parse les routes de haut en bas, je pense que tu as laissé les routes génériques en premier et qu'il ne cherche pas plus loin.

Si non, change dans ta route l'url, remplace article par "taratatsointsoin" ou n'importe quoi d'impossible, pour voir.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/01/2011, 10h36   #7
Invité de passage
 
Romain Le Mercier
Inscription : avril 2010
Messages : 10
Détails du profil
Informations personnelles :
Nom : Romain Le Mercier

Informations forums :
Inscription : avril 2010
Messages : 10
Points : 1
Points : 1
Merci c'était bien ça le souci!
J'ai compris comment marchai les routes maintenant!

Bon j'ai un autre souci -> Nouveau topic!

Romain.
Mainmich est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h14.


 
 
 
 
Partenaires

Hébergement Web