我遇到了以下问题:
我有一个实体查询,一对一,单向关联到客户:
/**
* @var Customer
*
* @ORM\OneToOne(targetEntity="Customer", cascade={"persist"}, fetch="EAGER")
* @ORM\JoinColumn(name="Customer", referencedColumnName="id", onDelete="SET NULL", nullable=true)
*/
protected $customer;
如果我通过db backend(phpmyadmin)删除客户,那么一切都很好:字段customer设置为空,但是如果我使用entitymanager删除客户对象,那么查询也会被删除,为什么?
$em = $this->getDoctrine()->getManager();
$em->remove($customer);
$em->flush();
我只想把它设为空。
对不起,我的英语不好,希望有人能帮忙;)
许多问候
最佳答案
你把地图注释错了。
试试这个
/**
* @ORM\ManyToOne(targetEntity="Customer")
* @ORM\JoinColumn(name="customer_id", referencedColumnName="id", onDelete="SET NULL")
*/
protected $customer;
关于php - 如何防止EntityManager删除(Doctrine Association),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37839716/