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 :

Formulaire avec champ entity


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 94
    Par défaut Formulaire avec champ entity
    Voici mon problème,

    J'aimerai savoir si il est possible avec doctrine et symfony, de remplir un champ avec une entity externe à celle du formulaire. Mais je veux que ce champs ne soit pas un choice mais un champ défini à l'avance.

    En fait le fonctionnement est simple:
    j'attribut un mot de passe temporaire pour chaque parent. Quand valider il est rediriger vers une page d'inscription et c'est là que j'aimerais qu'il soit automatiquement associer avec le nom de son enfant.

    voici une partie de mon formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ->add('enfant','entity',array(  
                    'class'=>'TicGestionBundle:Enfant',
                    'property'=>'nomEnfant',
                    'multiple' => true,
                    'expanded'=>false,
                    'by_reference'=>false,
                    'empty_value' =>'Faire un choix',
     
                    ))
            ;
        }
    j'aimerais que la valeur de ce champ soit le nom d'un élève (entity de mon app en relation avec l'entity parents) en particulier. L'utilisateur ne peut pas choisir son enfant( comme dans la vie quoi hihihi!)

    Je ne sais pas si je suis clair. Je sens que non mais bon ...

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 98
    Par défaut
    Effectivement ce n'est pas très clair .
    C'est tout à fait possible, mais surement pas comme sa.
    Si l'utilisateur ne peux pas choisir son enfant, ce champ n'as rien à faire dans ton formulaire.
    C'est dans le controlleur que tu dois remplir ton entité parent: tu crées une entité parent, tu utilises le setter pour lui mettre un enfant, tu passes le parent au formbuilder.

    PS: je te déconseille vivement d'appeler ta class parent: parent sinon tu riques d'avoir de mauvaises surprises

  3. #3
    Membre confirmé
    Inscrit en
    Août 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 94
    Par défaut Merci pour ta réponse
    En fait, ma classe s'appelle Tuteur mais bon pas très important.
    Donc si je comprends bien
    Dans mon formulaire j'enlève le champ enfant, et dans mon controller je fais un $this->setEnfant('blabla');
    avant le persist. Mais j'avoue avoir de la difficulté à bien comprendre comment manipuler les entity dans le controller.

    Voici mon controller:

    J'ai peut-être tout faux
    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
     
    $entity = new Tuteur();
            $form = $this->createCreateForm($entity);
            $form->handleRequest($request);
     
            if ($form->isValid()) {
                $em = $this->getDoctrine()->getManager();
                $em->persist($entity);
                $entity->setEnfant(2); //j'ai fait cela de cette facon pour etre certain que cela fonctionnait voir l'erreur plus bas
     
                 $em->flush();
     
                return $this->redirect($this->generateUrl('accueil', array('id' => $entity->getId())));
            }
     
            return array(
                'entity' => $entity,
                'form' => $form->createView(),

    Catchable Fatal Error: Argument 1 passed to Doctrine\Common\Collections\ArrayCollection::__construct() must be of the type array, integer given, called in

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 98
    Par défaut
    C'est assez simple à résoudre, tu passes en parametre un integer au lieu d'un tableau.

  5. #5
    Membre confirmé
    Inscrit en
    Août 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 94
    Par défaut De cette façon
    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
    $entity = new Tuteur();
            $form = $this->createCreateForm($entity);
            $form->handleRequest($request);
     
            if ($form->isValid()) {
                $em = $this->getDoctrine()->getManager();
                $em->persist($entity);
     
     
                $entity->setEnfant(['2']);
     
                 $em->flush();
     
                return $this->redirect($this->generateUrl('accueil', array('id' => $entity->getId())));
            }
     
            return array(
                'entity' => $entity,
                'form' => $form->createView(),
            );

  6. #6
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 98
    Par défaut
    Est-ce que tu peux poster ta classe Tuteur ?

Discussions similaires

  1. [2.x] Formulaire avec champ entity
    Par jillthe1 dans le forum Symfony
    Réponses: 15
    Dernier message: 21/10/2014, 14h43
  2. Formulaire avec champs liés à une requête
    Par willytito dans le forum IHM
    Réponses: 1
    Dernier message: 11/06/2007, 14h40
  3. ouverture formulaire avec champ vide
    Par atlantideD dans le forum IHM
    Réponses: 3
    Dernier message: 16/05/2007, 12h36
  4. formulaire avec champ calcules sur access
    Par tobisko dans le forum Access
    Réponses: 3
    Dernier message: 08/09/2006, 13h52
  5. [ODBC] Valider formulaire avec champs vides
    Par dorot dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 12/07/2006, 17h15

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