如何防止 EntityManager (Doctrine Association) 删除
How to prevent Deletion by the EntityManager (Doctrine Assocation)
我遇到了以下问题:
我有一个与客户一对一、单向关联的实体查询:
/**
* @var Customer
*
* @ORM\OneToOne(targetEntity="Customer", cascade={"persist"}, fetch="EAGER")
* @ORM\JoinColumn(name="Customer", referencedColumnName="id", onDelete="SET NULL", nullable=true)
*/
protected $customer;
如果我通过数据库后端 (PhpMyAdmin) 删除 Customer,那么一切都很好:字段 customer 设置为 null,但是如果我使用 EntityManager 删除 Customer 对象,那么 Inquiry 也会被删除,为什么?
$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;
我遇到了以下问题:
我有一个与客户一对一、单向关联的实体查询:
/**
* @var Customer
*
* @ORM\OneToOne(targetEntity="Customer", cascade={"persist"}, fetch="EAGER")
* @ORM\JoinColumn(name="Customer", referencedColumnName="id", onDelete="SET NULL", nullable=true)
*/
protected $customer;
如果我通过数据库后端 (PhpMyAdmin) 删除 Customer,那么一切都很好:字段 customer 设置为 null,但是如果我使用 EntityManager 删除 Customer 对象,那么 Inquiry 也会被删除,为什么?
$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;