我将用户的 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 行中定义”
感谢您的所有回答