Класс UnitOfWork.php имеет блок перехвата, например:
catch (Exception $e) {
$this->em->close();
$conn->rollback();
throw $e;
}
Конечно, если ваш класс не готов найти уже закрытый менеджер сущностей и, следовательно, соединение, выбудет иметь это исключение.Хуже всего то, что он маскирует основную причину исключения, поскольку ошибка была вызвана до выполнения блока catch.Чтобы это исправить, вы можете сделать простую проверку в блоке catch вашего класса:
catch(Exception $e) {
if($conn->isTransactionActive()) {
[rollback]
[close]
[rethrow] (if necessary)
}
}