3

将批量客户导入 Shopware 时,仅导入 CSV 的第一行然后引发错误

“EntityManager 已关闭”。

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

在那里检查了core_production_date.log并且没有日志。importexport.logshopware/var/log/

也检查了Configureation->logfile,那里也没有。

我怎样才能得到实际的错误日志,为什么它会发生?请让我知道是否有人可以提供帮助。

Shopware 版本为 5.2.27

谢谢。

4

2 回答 2

1

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

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

于 2017-08-31T16:36:35.853 回答
1

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

try {
 ... you code ...
} catch (\Exception $e) {
    if (!$this->getManager()->isOpen()) {
        $this->resetEntityManager();
    }
...
}
于 2017-10-27T19:59:55.727 回答