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 :

path() avec 5 parametres [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 78
    Points : 71
    Points
    71
    Par défaut path() avec 5 parametres
    Bonjour à tous

    Je réalise un site à l'aide de symfony2, j'aimerais envoyer à mon controller 5 parametres depuis ma page twig mais symfony me renvoi cette erreur : " Cannot import resource (Malformed inline YAML string ({ _controller: MainProjetBundle:User:profil, poids, taille, age, sexe, act}) at line 30 (near "defaults: { _controller: MainProjetBundle:User:profil, poids, taille, age, sexe, act}").) "

    Quand je réalise cette même opération avec cette foi quatre parametre je n'ai pas d'erreur.

    Voici mon code :

    twig :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    		{% if infos is defined %}
    			<section class="row results">
    					<div class="col-md-12" >		
    						<h3 id="titreBesoins">Resultats</h3><br>	
    						<span>Votre besoin calorique est de : {{infos.besoin}} kcal</span><br>
    						<span>Votre métabolisme de base est de {{infos.MB}} kcal<span><br>
    						<span>Votre IMC est de {{infos.imc}} <span><br>
    					</div>
    					<a class="btn btn-success btn-xl" href="{{ path('main_projet_profil', {'poids' : infosProfil.poids, 'taille' : infosProfil.taille, 'age' : infosProfil.age, 'sexe' : infosProfil.sexe, 'act' : infosProfil.activite }) }}">Sauvegarder profil</a><br><br>	
    			</section>
    		{% endif %}
    Donc je fais appel à la route " main_projet_profil " en lui transmettant mes 5 paramètres dont j'ai besoin

    routing.yml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    main_projet_profil:
        path:     /profil/{poids}/{taille}/{age}/{sexe}/{act}
        defaults: { _controller: MainProjetBundle:User:profil, poids, taille, age, sexe, act}
    Voici ma route avec les 5 paramètres. Je fais maintenant appel à la méthode profil de mon controller UserController, toujours avec mes 5 arguments

    UserController

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        public function profilAction($p, $t, $a, $s, $ac)
        {
            return $this->render('MainProjetBundle:Default:save.html.twig');
        }
    Voila , je ne comprend pas pourquoi cela ne fonctionne pas , à moin qu'il y ai un nombre limite d'argument avec la methode path() ..? Mais je ne trouve pas de reponse en cherchant sur le net , même chose pour l'erreur " Cannot import resource (Malformed inline YAML string ({ _controller: MainProjetBundle:User:profil, poids, taille, age, sexe, act}) at line 30 (near "defaults: { _controller: MainProjetBundle:User:profil, poids, taille, age, sexe, act}").) "

    Je vais essayer de faire autrement, peut etre en passant mes parametres en POST mais j'aimerais bien savoir ce qui cause ce problème.

    Si quelqu'un connait la solution, ou a des conseils à me donner , je lui en serrais fort reconnaissant !

    D'avance merci.

  2. #2
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Pas de tab dans les fichiers yml, configure ton IDE pour qu'il te fasse des espaces à la place.
    Et dans default, tu n'es pas obligé de remettre tous tes arguments si tu ne leur affectes aucune valeur par défaut.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 78
    Points : 71
    Points
    71
    Par défaut
    Salut Nico_F ,

    Merci de pour ta réponse mais le problème ne se situe pas la apparemment.
    Ca marche en supprimant un argument , sans rien changer d'autre donc si il s'agissait d'un problème de tabulation ca ne marcherait pas non plus avec 4 arguments.

  4. #4
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Et en faisant tout simplement ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    main_projet_profil:
        path:     /profil/{poids}/{taille}/{age}/{sexe}/{act}
        defaults: { _controller: MainProjetBundle:User:profil

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 78
    Points : 71
    Points
    71
    Par défaut
    merci de t’intéresser à mon problème et désolé je répond que maintenant j'ai pas pu le faire plus tot.

    J'ai changé de méthode pour passer tous mes parametres en post et, ainsi avoir une url plus belle . mais j'ai voulu remettre comme j'avais fais avant avec les 5 parametres passés en get pour tester ce que tu m'as conseillé et bien sur maintenant pls rien ne fonctionn ...
    J'appel une de mes routes mais elle me redirige pas vers la méthode que je lui ai indiqué. Quoi qu'il en soit il n'y a pas de raison pour qu'on ne puisse pas passer 5 param en get avec path si j'ai bien compris ?

    Bref je pense qu'il faut clairement que je revoi mon code !

    Je vais essayer de passer un peu de temps dessus cette aprèm.

    Concernant le passage de parametres en post dans des input hidden (pour eviter d'avoir une url avec les arguments visibles dedans) , Est ce que c'est une méthode "propre" ou y a t'il mieu a faire selon vous ?

    Merci encor pour l'aide

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 78
    Points : 71
    Points
    71
    Par défaut
    Salut à tous

    Juste pour info, j'ai decouvert une facon de passer mes parametres en post, je rajoute des champs hidden dans mon entité, qui ne vont servir qu'a faire transiter mes informations dont j'ai besoin. Et, pour eviter de me retrouver avec ces champs dans ma bdd je rajoute dans les annotation "mapped=false".

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

Discussions similaires

  1. [2.x] twig path avec passage de parametres
    Par DidG_like dans le forum Symfony
    Réponses: 3
    Dernier message: 09/05/2012, 10h41
  2. xsl:for-each avec un parametre pour select
    Par arnog dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 26/08/2008, 13h09
  3. Fonction Execlp avec nombre parametres variable
    Par laurent_ifips dans le forum C
    Réponses: 3
    Dernier message: 25/11/2005, 20h14
  4. [xsl] Changer avec un parametre un import
    Par seb30 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 27/07/2005, 15h14
  5. Procedure stockée avec un parametre en OUTPUT
    Par Nadaa dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/09/2004, 20h06

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