Shopware客户导入错误:实体管理器关闭
问题描述:
虽然从CSV导入批量客户到Shopware只有第一排进口则引发错误Shopware客户导入错误:实体管理器关闭
"The EntityManager is closed".
如果我尝试只用单一的数据它进口的客户,但也抛出相同的错误“EntityManager关闭”。
检查了core_production_date.log
和importexport.log
在shopware/var/log/
没有在那里登录。
还检查了Configureation->logfile
,没有。
我怎样才能得到实际的错误日志为什么发生?请让我知道是否有人可以提供帮助。
Shopware版本5.2.27是
感谢。
答
当请求的数据库上下文由于某个SQL异常而关闭时,EntityManager被关闭。 在我的项目中,这发生在使用Shopware的资源API,这也可能被导入器使用。资源捕获错误,以便它不会显示在日志中。由于SQL错误,实体管理器虽然通过原则被关闭,并且不能在相同的请求中重新打开。所以之后的任何调用都将以“EntityManager已关闭”消息结束。
如果您找到一种方法在控制台中运行导入,那么错误将至少显示为控制台日志,这会有所帮助。您还可以查看资源本身以查看可能错误或丢失的数据类型。
答
您可以使用在try..catch和复位EntityManager的catch子句中,如果它的关闭(你应该继承从您API类),例如:
try {
... you code ...
} catch (\Exception $e) {
if (!$this->getManager()->isOpen()) {
$this->resetEntityManager();
}
...
}