【问题标题】:Shopware customer import error: The EntityManager is closedShopware 客户导入错误:EntityManager 已关闭
【发布时间】:2018-01-16 21:06:55
【问题描述】:

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

“EntityManager 已关闭”。

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

shopware/var/log/ 中检查了core_production_date.logimportexport.log,那里没有日志。

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

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

Shopware 版本为 5.2.27

谢谢。

【问题讨论】:

    标签: php mysql shopware


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2019-02-22
        • 2012-12-24
        • 1970-01-01
        • 2022-01-08
        • 1970-01-01
        • 2015-08-19
        • 1970-01-01
        • 1970-01-01
        • 2023-03-15
        相关资源
        最近更新 更多