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 :

Erreur de routing


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Points : 80
    Points
    80
    Par défaut Erreur de routing
    Bonjour,
    je suis débutant avec symfony2 soyez donc indulgent svp.
    Voici ma route:
    Code yml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    blogAccueil:
        path:  /{page}
        defaults: { _controller: pillowfaceBlogBundle:Blog:index , page: 1 }
        requirements:
            page:  \d*
    les indentations sont quatres espaces, tout est valide par ce validateur : http://yamllint.com/
    Cependant, quand je vais sur : http://localhost/Symfony/web/app_dev.php/blog/
    J'ai une erreur 404, lancé par mon controlleur, que voici:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public function indexAction($page){
         if( $page < 1 ){
    		throw $this->createNotFoundException("Page inexistante");
    	}
         return $this->render('pillowfaceBlogBundle:Blog:index.html.twig', array('nom'=>'Rémi','page'=>$page));
    }

    Comment faire pour que ce paramètre soit pris en compte ?

    Merci d'avance.

  2. #2
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    je ne sais pas si on va être indulgent, nous sommes impitoyable avec les débutants

    le namespace est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /pillow/faceBlogBundle/
    /pillow/faceBlogBundle/controller/Blog
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    .....
    public function indexAction($page) {
    ....
    /pillow/faceBlogBundle/views/index.html.twig
    ________________________________________________

    déjà c'est mieux de mettre des majuscules, donc re ecrire partout avec les MAJ
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /Pillow/FaceBlogBundle/
    de plus au niveau de ton routage(path), il manque "blog" comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    blogAccueil:
        path:  /blog/{page}
        defaults: { _controller: pillowfaceBlogBundle:Blog:index , page: 1 }
        requirements:
            page:  \d*
    et comme le routage s'attends à une valeur de {page} donc l'url est la suivante (avec une valeur de page qui vaut 1 par exemple):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://localhost/Symfony/web/app_dev.php/blog/1

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Points : 80
    Points
    80
    Par défaut
    Voici le routing.yml qui est dans /app/config
    (j'aurai du le préciser plus tôt).
    Code yml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    pillowface_blog:
        resource: "@pillowfaceBlogBundle/Resources/config/routing.yml"
        prefix:   /blog
    Ensuite, j'aimerais que le paramètre "page" soit facultatif. Comment faire ?

  4. #4
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    une solution consiste à affecter ne valeur quelconque par ex null à page
    comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    blogAccueil:
        path:  /blog/{page}
        defaults: { _controller: pillowfaceBlogBundle:Blog:index , page: null }

    - avec cet url :
    http://localhost/Symfony/web/app_dev.php/blog

    $page vaut null
    - dans le controller:
    public function indexAction($page){ // $page==null

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Points : 80
    Points
    80
    Par défaut
    dac merci

Discussions similaires

  1. [2.x] Erreur de routing
    Par neperien dans le forum Symfony
    Réponses: 4
    Dernier message: 06/12/2013, 18h47
  2. [ZF 1.11] message d'erreur et routes non definies
    Par BeRoots dans le forum MVC
    Réponses: 3
    Dernier message: 30/09/2011, 18h18
  3. [1.x] Erreur de routing en prod.
    Par Fused dans le forum Symfony
    Réponses: 0
    Dernier message: 07/02/2011, 14h06
  4. erreur "No route matches"
    Par steave dans le forum Ruby
    Réponses: 2
    Dernier message: 27/10/2010, 09h31
  5. Erreur de route avec OpenVPN
    Par vpnvpn dans le forum Linux
    Réponses: 0
    Dernier message: 05/10/2010, 05h17

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