Я пытаюсь поймать исключение во время выполнения:
try {
$em->remove($education);
$em->flush();
} catch(PDOException $e) {
var_dump($e->getMessage());
die;
}
Я также попытался \Exception
и \Doctrine\ORM\ORMException
, но ни один из них не работал.
Вместо демпинг сообщения исключений я получаю ту же ошибку, я стараюсь, чтобы избежать ловли исключение:
[3/3] ForeignKeyConstraintViolationException: произошло исключение во время выполнения? DELETE FROM trainee_education WHERE ID = ' с PARAMS [2]:
SQLSTATE [23000]: Integrity нарушение ограничения: 1451 Не удается удалить или обновление родительской строки: ограничение внешнего ключа не удается (
trainingexperience
internship
, скованностьFK_10D1B00C2CA1BD71
FOREIGN KEY (education_id
) Лит.trainee_education
(id
))
Я не знаю, почему мое ограничение не удается, ничего нового. Но я хотел бы получить исключение, чтобы я мог сообщить пользователю, что он не может удалить объект, он использовал его раньше, чтобы создать отношения.
Исключения говорят, что это имя 'ForeignKeyConstraintViolationException' не' PDOException', вы уверены, что первый расширяет второе? вы должны попытаться поймать 'ForeignKeyConstraintViolationException' и посмотреть. Или, конечно, попробуйте поймать Exception, тогда вы можете выяснить, какой класс был брошен как исключение – smarber
@smarber \ Exception тоже не работал, поэтому я задал здесь вопрос. УБЕДИТЕСЬ, ЧТОБЫ ВСТАВИТЬ Я попробую его и дам вам знать. –