J'essaie d'ajouter des informations dans deux entités à travers un seul formulaire.
Voici l'erreur que je rencontre:
voici le code du controlleur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?php Catchable Fatal Error: Argument 1 passed to Khaoula\BlogBundle\Entity\Commande::setArticle() must be an instance of MyBundle\Entity\Article, array given, called in C:\wamp\www\TestRayhane\vendor\symfony\src\Symfony\Component\Form\Util\PropertyPath.php on line 347 and defined in C:\wamp\www\TestRayhane\src\Khaoula\BlogBundle\Entity\Commande.php line 98 ?>
Le code de la classe CommandeType :
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 <?php public function indexAction($name) { return $this->render('MyBundle:Default:index.html.twig', array('name' => $name)); } public function AjouterAction() { $Article=new Article(); $Commande=new Commande(); $form=$this->createForm(new CommandeType(), $Commande); $request=$this->get('request'); if ($request->getMethod()=='POST'){ $form->bindRequest($request); if($form->isValid()){ $em=$this->getDoctrine()->getEntityManager(); $em->persist($Commande); $em->flush(); } } return $this->render('MyBundle:Default:Ajouter.html.twig',array('form'=>$form->createView())); } ?>
Sachant que j'ai ajouté un champ dans la classe Commande comme suit :
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 <?php class CommandeType extends AbstractType { public function buildForm(FormBuilder $builder, array $options) { $builder ->add('date', 'date') ->add('qute', 'text') ->add('article', new ArticleType()) ; } public function DefaultOptions(OtpionsResolverInterface $resolver){ $resolver->setDefaults(array('dat_access'=>'khaoula\BlogBundle\Entity\Commande')); } public function getName() { return 'khaoula_blogbundle_commandetype'; } } ?>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php /** * @ORM\OneToOne(targetEntity="Khaoula\BlogBundle\Entity\Article",cascade={"persist"}) */ private $article; ?>
Partager