代码之家  ›  专栏  ›  技术社区  ›  knete

如何防止EntityManager删除(Doctrine Assocation)

  •  3
  • knete  · 技术社区  · 9 年前

    我遇到了以下问题:

    我有一个实体向客户进行一对一单向关联查询:

    /**
     * @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,那么一切正常:字段Customer设置为null,但是如果我用EntityManager删除Customier对象,那么Inquiry也会被删除,为什么?

    $em = $this->getDoctrine()->getManager();
    $em->remove($customer);
    $em->flush();
    

    我只想将其设置为null。

    对不起,我英语不好,希望有人能帮我;)

    许多问候语

    1 回复  |  直到 9 年前
        1
  •  1
  •   Anam Shah    9 年前

    您对映射的注释错误。 试试这个

    /**
    * @ORM\ManyToOne(targetEntity="Customer")
    * @ORM\JoinColumn(name="customer_id", referencedColumnName="id", onDelete="SET NULL")
    */
    protected $customer;