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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 7
    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
    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 ?

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

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 7
    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
    Par défaut
    Et ta variable, elle vient d'ou car localement dans ta function, elle n'existe pas ?

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

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 7
    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
    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 ...

+ 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