我有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
答案 0 :(得分:0)
我认为你可能将你的拥有与反面混淆了。
“OneToOne关联的拥有方是包含外键的表的实体。” - Doctrine Documentation Chapter 11