Shopware客户导入错误:EntityManager已关闭

时间:2017-08-09 06:10:53

标签: php mysql shopware

将批量客户导入Shopware时,只导入CSV中的第一行,然后抛出错误

  

" EntityManager已关闭"。

如果我只尝试使用单个数据,它会导入客户,但也会抛出相同的错误" EntityManager已关闭"。

检查core_production_date.log中的importexport.logshopware/var/log/没有记录。

同时检查Configureation->logfile,也没有。

如何获取实际错误日志为何会发生?如果有人可以帮忙,请告诉我。

Shopware版本为5.2.27

感谢。

2 个答案:

答案 0 :(得分:1)

当由于某些SQL异常而关闭请求的数据库上下文时,会发生EntityManager关闭。 在我的项目中,这发生在使用Shopware的Resource API时,也可能由Importer使用。资源捕获错误,因此它不会显示在日志中。由于SQL错误,实体管理器因学说而关闭,无法在同一请求中重新打开。因此,之后的任何调用都将以“EntityManager已关闭”消息结束。

如果您找到一种在控制台中运行导入的方法,这将有助于将错误至少显示为控制台日志。您还可以查看资源本身,以查看哪些类型的数据可能出错或丢失。

答案 1 :(得分:1)

您可以使用try..catch并在catch子句中重置EntityManager,如果它已关闭(您应该扩展您的API类),例如:

try {
 ... you code ...
} catch (\Exception $e) {
    if (!$this->getManager()->isOpen()) {
        $this->resetEntityManager();
    }
...
}