IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

generateUrl : The route "article/3/esdfesdes" does not exist. [1.x]


Sujet :

Symfony PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 7
    Points
    7
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 321
    Points : 265
    Points
    265
    Par défaut
    Pour passer une route dans un redirect voila comment je fais :

    Dans ton cas ca donnera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->redirect('@article_show?module='.$tonModule.'&id='.$tonId.'&url='.$tonUrl);

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Je viens de tester mais ça ne fonctionne pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->redirect($this->generateUrl('@article_show?module=article&id='.$data['articles_id'].'&url=lorem-ipsum'));
    Erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  4. #4
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    article_show:
      url: /article/:id/:url
      param: {module: article, action: show}
    Et que l'appel devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->redirect('@article_show?id='.$tonId.'&url='.$tonUrl);

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    Action "article/26" does not exist.
    Je ne comprends pas, quelqu'un peu m'expliquer?

    Romain.

  6. #6
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    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.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Merci c'était bien ça le souci!
    J'ai compris comment marchai les routes maintenant!

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

    Romain.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/04/2013, 09h35
  2. Réponses: 10
    Dernier message: 24/04/2009, 10h40
  3. The name 'AdressFamily' does not exist in the current context
    Par konamine dans le forum Windows Forms
    Réponses: 1
    Dernier message: 26/10/2008, 16h49
  4. Problème "The specified service does not exist as an ..
    Par Rimak2 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 23/05/2005, 21h24
  5. FATAL 1: Database "x" does not exist in the syste
    Par barbituric dans le forum PostgreSQL
    Réponses: 11
    Dernier message: 17/03/2004, 06h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo