Итак, у меня есть сущность User и сущность Department:
/**
* @ORM\OneToMany(targetEntity="App\Entity\User", mappedBy="department")
*/
private $employees;
и
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Department", inversedBy="employees")
*/
private $department;
И я использую EasyAdmin Bundle. Я хочу иметь возможность удалить Department, который есть сотрудники, но не удаляя их. но я всегда получаю эту ошибку:
Существует исключение ForeignKeyConstraintViolationException для объекта Doctrine, связанного с «Отделом». Решение: отключите действие «delete» для этого объекта или настройте атрибут «cascade = {« remove »}» для связанного свойства в объекте Doctrine. Полное исключение: возникла исключительная ситуация при выполнении «УДАЛИТЬ ИЗ ОТДЕЛА, ГДЕ id =?» с параметрами [4]:
Я попытался переопределить событие 'easy_admin.pre_delete', добавив эту функцию, чтобы удалить все ассоциации перед удалением моей сущности:
public static function getSubscribedEvents()
{
return array(
'easy_admin.pre_delete' => array('deleteAssociations'),
);
}
public function deleteAssociations(GenericEvent $event) {
$entity = $event->getSubject();
if (!($entity instanceof Department)) {
return;
}
foreach($entity->getEmployees() as $employee) {
$entity->removeEmployee($employee);
}
$event['entity'] = $entity;
}
, но это по-прежнему показывает ту же ошибку. если у кого-то есть идеи, почему, спасибо за любой ответ