0

私は2つのエンティティを持っています患者

class Patients 
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

     /**
     * @ORM\OneToOne(targetEntity="ContactAddress", mappedBy="patient" ,cascade={"persist"})
     */
    protected $contactaddress;

そしてContactAddress

class ContactAddress
{
     /**
     * @ORM\OneToOne(targetEntity="Patients", inversedBy="contactaddress")
     * @ORM\JoinColumn(name="patient_id", referencedColumnName="id")
     */
     protected $patient;
}

フォームを埋め込みましたほとんど機能しましたが、フィールドpatient_idのみがNULLです。患者からのIDがContactAddressの外部キーになりたいコントローラーの一部

   $entity  = new Patients();
   $request = $this->getRequest();
   $form    = $this->createForm(new \Surgery\PatientBundle\Form\PatientsType(), $entity);
   $form->bindRequest($request);

    if($request->getMethod()=='POST')  //sending form
    {
        if ($form->isValid())  //valid form
        {        
            $em->persist($entity);               
            $em->flush();  

            return $this->redirect($this->generateUrl('kategoria_show', array('id' => $entity->getId())));  


        }  

編集:関連付けを変更しました

 /**
 * @ORM\OneToOne(targetEntity="Patients", inversedBy="patients")
 * @ORM\JoinColumn(name="patient_id", referencedColumnName="id")
 */
 protected $patient;



 /**
 * @ORM\OneToOne(targetEntity="ContactAddress", mappedBy="contactaddress" ,cascade={"persist"})
 */
protected $contactaddress;

しかし、それでも機能しません。ContactAddressの私のフィールドpatient_idはNULLです。

4

1 に答える 1

0

所有者と逆側が混同されている可能性があると思います。

「OneToOne アソシエーションの所有側は、外部キーを含むテーブルを持つエンティティです。」— Doctrine Documentation Chapter 11

于 2013-01-17T14:01:43.050 に答える