doctrine error The EntityManager is closed. Ошибка - подключение к базе закрыто
Primary tabs
Текст ошибки
После длительной отладки формы и множественных перезагрузок страницы, наконец я получила такую ошибку:
The EntityManager is closed.
В первые секунды я решила - всё - я достала EntityManager. Он устал, и уходит XD
Но, отогнав от себя нелепые олицетворения, всё же пошла искать решение проблемы.
Решение
Суть ошибки заключается в том, что связь с БД была прервана в середине скрипта, но после этого поступал ещё один запрос.
Как было конкретно у меня:
- EntityManager инициализировался как поле класса-сервиса
- В процессе скрипта вызывались 2 метода этого класса, которые оба заканчивались строкой:
$this->entityManager->flush();
В первом соединение и разрывалось, а второй уже выбрасывал ошибку.
Мне пришлось немного переписать логику приложения, объединив эти методы.
Чтобы проверить, где соединение открыто, а где уже нет, можно использовать метод:
$this->em->isOpen();
И не давите на EntityManager :)
Источники
- Log in to post comments
- 2419 reads