我将用户的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 \ PreitBundle \ Entity \ Medida :: setHijo()的参数1必须是Goodday \ PreditBundle \ Entity \ Hijo的实例,给定字符串,在C:\ Users \ Diego \ Desktop中调用\ Practicas \ predit \ src \ Goodday \ PreditBundle \ Controller \ HijoController.php在第74行并在C:\ Users \ Diego \ Desktop \ Practicas \ predit \ src \ Goodday \ PreditBundle \ Entity \ Medida.php第461行中定义“< / p>
感谢您的所有答案
答案 0 :(得分: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);
希望它有用。
最好的关注。