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.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
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 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 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 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
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', ); }
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()))); }
Partager