Php doctrine2 flush()无明显原因自动崩溃

Php doctrine2 flush()无明显原因自动崩溃,php,mongodb,doctrine-orm,database,Php,Mongodb,Doctrine Orm,Database,我正在编写一个转换器,它从数据库(MongoDB)中获取一个文档,对其字段进行一些处理并将其写回。对所有相关文档重复此操作 问题是,在成功处理EntityManager#flush()后,只是静静地崩溃,没有向数据库提交任何更改或返回错误代码。 我以前遇到过这种崩溃,但我通过减少要刷新的实体数量()来避免它。现在连一个都不行了 代码如下所示: public function convertTagsAction() { $result = []; $result['docs processed'

我正在编写一个转换器,它从数据库(MongoDB)中获取一个文档,对其字段进行一些处理并将其写回。对所有相关文档重复此操作

问题是,在成功处理
EntityManager#flush()
后,只是静静地崩溃,没有向数据库提交任何更改或返回错误代码。 我以前遇到过这种崩溃,但我通过减少要刷新的实体数量()来避免它。现在连一个都不行了

代码如下所示:

public function convertTagsAction() {

$result = [];
$result['docs processed'] = 0;
$result['tags added'] = 0;
$repo = $this->getRepo('Portal');
$cnt = 0;
$dm = $this->getDM();

$docs = $repo->findBy([...]);

$result['docs to process'] = count($docs);

foreach($docs as $doc) {

....//executing just for ONE doc at the moment

  $result['docs processed']++;

  //file_put_contents('1.txt', print_r($doc, true));
  //Everything is ok in the file

  $dm->persist($doc);
  echo $dm->getUnitOfWork()->size();
  // returns 6087 which I deem strange

  //this helped me before to manage this problem
  $cnt++;
  if ($cnt >= 20) {
    $dm->flush();
    $cnt = 0;
  }
}
try {
  $dm->flush();
} catch (Exception $e) {
  echo $e->getMessage(); //Nah, won't tell me anything
}
return $this->success($result);
}

因此,无论何时调用
flush()
,脚本都会退出,甚至不会返回任何输出(应该在最后一行中这样做)。有没有办法解决这个问题?

你从来没有遇到过例外,或者没有什么有用的东西?若您并没有得到异常,那个么可能会忘记将“使用异常”添加到您的控制器中。dev/prod.log里有什么吗?@PawełMikołajczuk,我真的忘了。然而,这根本没有帮助。看起来在
flush()
之后绝对不会执行任何代码。这里有一个条目:
security.INFO:使用匿名令牌[][]填充SecurityContext
您永远不会得到异常,或者没有任何有用的内容?若您并没有得到异常,那个么可能会忘记将“使用异常”添加到您的控制器中。dev/prod.log里有什么吗?@PawełMikołajczuk,我真的忘了。然而,这根本没有帮助。看起来在
flush()
之后绝对不会执行任何代码。有以下条目:
security.INFO:使用匿名令牌[][]填充SecurityContext