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 :

FosUser Embedded form [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2003
    Messages : 307
    Points : 378
    Points
    378
    Par défaut FosUser Embedded form
    Hello,

    J'essaie d'intégrer le formulaire de registration de foseruser à mon entité asb

    Le formulaire se fusionne bien avec mon form asbl mais j'ai le message d'erreur suivant lors de la validation

    A new entity was found through the relationship 'Ac\AsblBundle\Entity\Npo#user' that was not configured to cascade persist operations for entity: jfsenechal. Explicitly persist the new entity or configure cascading persist operations on the relationship. If you cannot find out which entity causes the problem implement 'Ac\MonSecurityBundle\Entity\User#__toString()' to get a clue.
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    Class Asbl {
     
    ....
     
        /**
           *@ORM\OneToOne(targetEntity="Ac\MonSecurityBundle\Entity\User")
         * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
         * @Assert\Type(type="Ac\MonSecurityBundle\Entity\User")
         */    
        protected $user;
    ..
     
    /**
         * Set user
         *
         * @param Ac\MonSecurityBundle\Entity\User $user
         */
        public function setUser(\Ac\MonSecurityBundle\Entity\User $user)
        {
            $this->user = $user;
        }
     
        /**
         * Get user
         *
         * @return Ac\MonSecurityBundle\Entity\User 
         */
        public function getUser()
        {
            return $this->user;
        }
     
     
    }
    Mon formulaire

    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
     
     
    class AsblType extends AbstractType {
     
        public function buildForm(FormBuilder $builder, array $options) {
            $builder
                    ->add('title')
                    ->add('user', New UsertType())
     
    ...
     
     public function getDefaultOptions(array $options) {
            return array(
                'data_class' => 'Ac\MonBundle\Entity\Npo',
            );
        }
    Mon userType

    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
     
    class UserType extends AbstractType
    {
        public function buildForm(FormBuilder $builder, array $options)
        {
            $builder            
                ->add('username')
                ->add('email', 'email')           
                ->add('plainPassword', 'repeated', array('type' => 'password'))           
            ;
        }
     
         public function getDefaultOptions(array $options)
        {
            return array(
                'data_class' => 'Ac\MonSecurityBundle\Entity\User',
            );
        }
    Mon controlleur

    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
     
     public function createAction()
        {
            $entity  = new Asbl();
            $request = $this->getRequest();
            $form    = $this->createForm(new NpoType(), $entity);
            $form->bindRequest($request);
     
            if ($form->isValid()) {
                $em = $this->getDoctrine()->getEntityManager();
                $em->persist($entity);
                $em->flush();
     
                return $this->redirect($this->generateUrl('npo_show', array('id' => $entity->getId())));
     
            }

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    Bonjour

    comme l'indique le message d'erreur il faut persister ton entité User

    soit dans le controlleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $em = $this->getDoctrine()->getEntityManager();
                $em->persist($entity);
                $em->persist($entity->getuser();
                $em->flush();
    soit dans la configuration de l'entité avec l'annotation "cascade"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    /**
           *@ORM\OneToOne(targetEntity="Ac\MonSecurityBundle\Entity\User", cascade={"persist"})
         */    
        protected $user;

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2003
    Messages : 307
    Points : 378
    Points
    378
    Par défaut
    super nickel ça fonctionne !

    Merci

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

Discussions similaires

  1. [1.x] Surcharge save() pour embedded form
    Par Nico_F dans le forum Symfony
    Réponses: 6
    Dernier message: 19/07/2011, 11h38
  2. [1.x] Embedded forms & bind()
    Par Nico_F dans le forum Symfony
    Réponses: 7
    Dernier message: 18/05/2011, 15h09
  3. [1.x] Embedded Forms 1 to many : ajout dynamique avec ajax
    Par rastaferraille dans le forum Symfony
    Réponses: 3
    Dernier message: 30/03/2011, 11h53
  4. [1.x] Form filter et embedded form
    Par Jeobs dans le forum Symfony
    Réponses: 9
    Dernier message: 17/09/2010, 17h52
  5. [1.x] Création d'objets avec Embeded form
    Par Adesfire dans le forum Symfony
    Réponses: 4
    Dernier message: 08/01/2010, 16h07

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