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())));
 
        }