J'essaie d'ajouter des informations dans deux entités à travers un seul formulaire.
Voici l'erreur que je rencontre:

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 
?>
voici le code du 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
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()));
    }
?>
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
 
<?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';
    }
}
?>
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
 
<?php 
 /**
     * @ORM\OneToOne(targetEntity="Khaoula\BlogBundle\Entity\Article",cascade={"persist"})
     */
    private $article;
?>