0

我将用户的 id 传递给控制器​​。此 id 用于填充另一个实体的字段,以便该实体可以知道它所属的位置。控制器的代码是

 public function nuevamedidaAction($id, Request $peticion){

    $em = $this->get('doctrine')->getEntityManager();

    $medida = new \Goodday\PreditBundle\Entity\Medida;

    $medida->setHijo($id);



    $form = $this->createForm(new \Goodday\PreditBundle\Form\MedidaType(), $medida);


    $form->handleRequest($peticion);




        if ($form->isValid()) {


            $em->persist($medida);
            $em->flush();
                                        return $this->render('PreditBundle:Default:test2.html.twig');


        }





    return $this->render('PreditBundle:Medida:newmedida.html.twig', array('form' => $form->createView(), 'error' => $form->getErrors()));
}  

现在我的实体中的字段“hijo”看起来像:

    /**
 * @ORM\ManyToOne(targetEntity="Hijo", inversedBy="medidas", cascade={"remove"})
 * @ORM\JoinColumn(name="hijo_id", referencedColumnName="id")
 */

受保护的$hijo;

它返回我以下错误

“可捕获的致命错误:传递给 Goodday\PreeditBundle\Entity\Medida::setHijo() 的参数 1 必须是 Goodday\PreeditBundle\Entity\Hijo 的实例,给定字符串,在 C:\Users\Diego\Desktop\Practicas\ 中调用predit\src\Goodday\PreeditBundle\Controller\HijoController.php 在第 74 行并在 C:\Users\Diego\Desktop\Practicas\preedit\src\Goodday\PreeditBundle\Entity\Medida.php 第 461 行中定义”

感谢您的所有回答

4

1 回答 1

0

错误很明显:Argument 1 passed to Goodday\PreditBundle\Entity\Medida::setHijo() must be an instance of Goodday\PreditBundle\Entity\Hijo, string given

您必须将 Hijo 对象传递给该方法setHijo

$hijo = $em->getRepository('GooddayPreditBundle:Hijo')->find($id);
$medida->setHijo($hijo);

希望它有帮助。

最良好的问候。

于 2013-08-05T07:58:49.987 回答