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 :

routing et symfony [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 207
    Par défaut routing et symfony
    Bonjour.

    Par défaut le détail d'un utilisateur est accessible comme ceci user/show/id/1.

    J'aimerai pouvoir afficher le détail d'un utilisateur comme ceci, user/pseudoutilisateur.

    J'ai défini une route comme ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    show_user:
      url:   /user/:username
      param: { module: user, action: show }

    j'ai modifié mon executeshow comme ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public function executeShow(sfWebRequest $request)
      {
        $this->sf_guard_user = Doctrine::getTable('sfGuardUser')->find($request->getParameter('username'));
    	//$this->sf_guard_user =  $this->getRoute()->getObject();
     
        $this->forward404Unless($this->sf_guard_user);
      }
    Quand je veux acceder au detail de mon utilisateur /user/utilisateur1 j'obtiens ceci,

    404 | Not Found | sfError404Exception
    Action "user/utilisateur1" does not exist.

    Vous avez des idées sur mon problème?

    Merci

  2. #2
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Par défaut
    Salut,

    Dans le Find(), il faut envoyer l'id je crois bien.

    En espérant t'aider...

    A+

    Mathieu

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 207
    Par défaut
    Citation Envoyé par mathieu44800 Voir le message
    Salut,

    Dans le Find(), il faut envoyer l'id je crois bien.

    En espérant t'aider...

    A+

    Mathieu
    Ca sous entends que dans l'url faut toujours y passer l'id?
    Mais de toute facon meme si je fait une url de ce genre /user/utilisateur/id ca me renvoi toujours la même erreur (en passant l'id dans le executeshow)

    EDIT : de toute facon je dois rater quelque chose car si je fais une route comme ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    show_user:
      url:   /user/showw/:id
      param: { module: user, action: show }
    et si j'affiche /user/showw/1 ca me met la même erreur, mes routes doivent être mauvaises alors?

  4. #4
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Par défaut
    Salut,

    Non pas forcément, tu as plusieurs choix :

    Tu peux utiliser les sessions

    Get :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sfContext::getInstance()->getUser()->getAttribute('id');
    Set :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sfContext::getInstance()->getUser()->setAttribute('id', $taValeur);
    A moins que tu sois déjà loggué. un simple getUser()->getId() suffit.

    Tu peux utiliser deux paramètres dans ton url avec le nom et l'id

    Attention au Requirement avec cette méthode

    Ou tu peux aussi implémenter une méthode findByName si tes username sont uniques dans ta bdd

    A+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 207
    Par défaut
    Je sais pas si tu as vu l'edit de mon dernier message.

    Mais j'ai laissé tel quel en crééant une route pour avoir le detail de l'utilisateur par showw et non show et ca ne passe pas.

    Je dois mal cerner quelque chose et sauter peux être une étape?

    Merci

  6. #6
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Par défaut
    404 | Not Found | sfError404Exception
    Action "user/utilisateur1" does not exist.
    Est ce que tu peux afficher si la route matchée par symfony est celle que tu veux lui faire utiliser ou la route par defaut ?

    Car le message que tu reçois proviens que l'action correspondante a ta route n'as pas été trouvée.

    A+

  7. #7
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Par défaut
    Salut,

    Il a raison, tu n'es pas obligé de supprimmer le route par défaut, si tu mets tes autres routes au dessus, elles seront matchées en premier.

    A+

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

Discussions similaires

  1. [2.x] Route symfony dans le paramètre url d'un appel ajax
    Par abc.xyz dans le forum Symfony
    Réponses: 8
    Dernier message: 03/08/2014, 08h17
  2. [2.x] Route - Symfony 2
    Par wadjo dans le forum Symfony
    Réponses: 5
    Dernier message: 07/06/2014, 12h09
  3. [2.x] Problème Symfony 2.1.7 : perte de route, soucis de cache...
    Par guiguidoudou dans le forum Symfony
    Réponses: 1
    Dernier message: 09/05/2014, 11h43
  4. [2.x] Sur la route de Symfony 2.1
    Par dourouc05 dans le forum Symfony
    Réponses: 6
    Dernier message: 29/05/2012, 21h54
  5. [1.x] emailing à route via une tache symfony
    Par lepopol dans le forum Symfony
    Réponses: 7
    Dernier message: 10/01/2011, 17h02

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