Как предотвратить удаление 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;

Если я удаляю Customer через DB Backend (PhpMyAdmin), то все в порядке: поле customer установлено на null, но если я удаляю объект Customer с помощью EntityManager, то запрос также удаляется, почему?

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

Я просто хочу установить его на ноль.

Извините за мой плохой английский, я надеюсь, что кто-то может помочь;)

Много приветствий

3

Решение

Вы аннотируете отображение неправильно.
Попробуй это

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

Другие решения

Других решений пока нет …