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 に答える