Doctrine onDelete Ограничения внешнего ключа

Быстрый набросок
Я хочу удалить родительский объект, не удаляя его дочерние элементы, вместо этого установить для столбца, на который указывает ссылка, значение NULL

Мое программирование
Я добавил onDelete="SET NULL" в столбец joinColumn моего дочернего объекта следующим образом:

/**
 * @ORM\ManyToOne(targetEntity="Backend\Modules\Ads\Domain\Ad\Ad", inversedBy="rewarded")
 * @ORM\JoinColumn(name="ad_id", referencedColumnName="id", onDelete="SET NULL")
 */
private $ad;

Это ассоциация родительского объекта:

/**
 * @ORM\OneToMany(targetEntity="Backend\Modules\Ads\Domain\Rewarded\Rewarded", mappedBy="ad")
 */
private $rewarded;

Проблема
При удалении родителя выдает такую ​​ошибку:

Cannot delete or update a parent row: a foreign key constraint fails

Я уже пытался добавить "remove", "persist" без особого успеха. Использование сохранения все равно вызовет ошибку, а при включенном удалении просто удалит строку.

Я пока не нашел рабочего решения для этого, спасибо уже!


person Ciryk Popeye    schedule 08.12.2017    source источник
comment
Вы выполнили команду обновления схемы?   -  person M Khalid Junaid    schedule 08.12.2017
comment
Да, существует связь с On Delete = SET NULL в базе данных.   -  person Ciryk Popeye    schedule 08.12.2017


Ответы (1)


Я нашел решение. Моя сущность, которую я хотел установить NULL, зависела от другой сущности, которая также зависела от той, которую я удаляю. Метод, который я использовал выше, полностью рабочий, если он реализован везде, где это необходимо.

Спасибо.

person Ciryk Popeye    schedule 08.12.2017