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

Bibliothèques et frameworks PHP Discussion :

[Symfony2] Formulaire + liste de la base de données


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 7
    Points : 6
    Points
    6
    Par défaut [Symfony2] Formulaire + liste de la base de données
    Bonjour,

    Je suis en plein développement d'une application web Symfony2 et je bloque sur un point assez spécifique :

    J'ai un formulaire personnalisé qui enregistre des informations dans une seule table (disons la table livre).

    Et cette table fait appel à une autre pour une information particulière (par exemple la table rayon, la table livre à une clé étrangère pour la table rayon).

    Jusqu'ici ça va encore, je m'en sors. Le problème survient lorsque je souhaite afficher seulement certain rayon (lié à la fonction de l'utilisateur connecté), pas tous.

    Concrètement voilà ce que ça donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    public function utilisateurAjouterAction(){
    		$utilisateur= $this->container->get('security.context')->getToken()->getUser();
    		$fonction=$utilisateur->getFonction()->getId();
     
    		$livre = new Livre();
    		$livre->setUtilisateur($utilisateur);
     
    		$form = $this->createFormBuilder($livre)
    			->add('categorie','entity',array(
    				'class'=>'Acme\LivreBundle\Entity\Rayon',
    				'query_builder' => function(EntityRepository $er) {
    					return $er->createQueryBuilder('n')
    						->where('n.fonction= :fonction')->setParameter('fonction', 1)
    						->orderBy('n.libelle', 'ASC')
    						;
    				},
    				'property'=>'libelle',
    			))
    			->add('text','titre')
    			->add('text','auteur')
    			->getForm();
           	return $this->render('AcmeLivreBundle:Livre\\utilisateur:ajouter.html.twig',array(
    			'form' => $form->createView(),
    		));
        }
    Le problème est à la ligne 14, lorsque je mets '1' comme ici cela fonctionne. Par contre, lorsque je remplace le '1' par '$fonction' de la ligne 4, une erreur m'indique que cette variable est inconnue.

    Quelqu'un a-t-il été confronté à ce problème ?

  2. #2
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Tu dois peut être utiliser un nom de variable différent de $fonction, ça fait beaucoup de 'fonction' dans le code ?
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Merci pour ton réponse Fench.

    Je viens d'essayer en remplaçant '$fonction' de la ligne 4 par '$fonction_id' ; puis, les deux autres 'fonctions' de la ligne 14 par var et j'ai la même erreur :

    Notice: Undefined variable: fonction_id in C:\wamp\www\Symfony\src\Acme\LivreBundle\Controller\LivreController.php line 62

    (La ligne 62 correspond à la ligne 14)

  4. #4
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Et ta variable, elle vient d'ou car localement dans ta function, elle n'existe pas ?
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Ma variable corresponds à la fonction de l'utilisateur actuellement connecté (dans le code ça corresponds aux lignes 3 et 4).
    Ensuite la fonction add() est appelée directement dans une action du contrôleur mais elle n'est pas localement redéfini.

    J'ai essayé d'externaliser le formulaire en mettant la variable $fonctions_id directement, mais je ne sais pas comment récupérer l'utilisateur actuellement connecté car $this (ligne 3) n'est pas reconnu.

    Je sais pas si c'est très clair ..

  6. #6
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    En fait je parlais dans la function:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    'query_builder' => function(EntityRepository $er) {
    					return $er->createQueryBuilder('n')
    						->where('n.fonction= :fonction')->setParameter('fonction', 1)
    						->orderBy('n.libelle', 'ASC')
    						;
    				},
    car c là que localement elle n'est pas définie ...
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Oui c'est que je me disais mais je ne sais pas du tout comment définir ma variable dans cette fonction, pour moi vu que la variable est déclarée sur la page ça devait être reconnu ..

    Tu sais comment procéder ?

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Avec de meilleurs termes pour ma recherches, j'ai trouvé !
    http://www.developpez.net/forums/d11...-id-parametre/

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

Discussions similaires

  1. [Formulaire]liste modifiable avec peu de données
    Par alassanediakite dans le forum IHM
    Réponses: 6
    Dernier message: 16/04/2007, 13h10
  2. [MySQL] Liste déroulante et base de données
    Par lanysteph dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 20/10/2006, 12h07
  3. Réponses: 8
    Dernier message: 20/07/2006, 14h08
  4. [Conception] formulaire en php et base de donnée
    Par damien_1985 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 16/06/2006, 21h47
  5. [ JSP ] Formulaire tres dynamique avec base de données.
    Par Dukedoom dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 08/06/2006, 09h19

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