Php 来自QueryBuilder的过时结果?

Php 来自QueryBuilder的过时结果?,php,doctrine-orm,Php,Doctrine Orm,我试图用Doctrine的QueryBuilder调试一个非常奇怪的问题。我所做的大致如下: $entity->setDeleted(true); $em->persist($entity); $em->flush(entity); //the filter basically appends 'deleted = 0' to the query $em->getFilters()->enable('softdelete'); $qb = $em->crea

我试图用Doctrine的QueryBuilder调试一个非常奇怪的问题。我所做的大致如下:

$entity->setDeleted(true);
$em->persist($entity);
$em->flush(entity);

//the filter basically appends 'deleted = 0' to the query
$em->getFilters()->enable('softdelete');
$qb = $em->createQueryBuilder()
   ->from($entity_class, 'c')
   ->where('c.id = ?0')
   ->setParameter(0, $entity->getId())
   ->select("COUNT(c)");
$result = intval($qb->getQuery()->getSingleScalarResult());
我期望发生的当然是$result为零,但相反,我得到1。如果我手动检查数据库,则该值似乎写入正确(即,它显示的是“1”,而不是“0”)


所以我尝试启用Doctrine的SQLEchoLogger来查看执行的是什么类型的语句,奇怪的是:当启用记录器时,结果是预期的零。所以我想知道:我如何调试这个问题,它可能是什么?DB驱动程序是pdo_mysql(带有MyISAM表),据我所知,我没有启用缓存。

Hi,你能跟踪你的sql慢速查询日志,看看它是否告诉你你正在构建的确切查询。我试过了,但似乎没有从中得到任何有用的信息。但我不认为这与MySQL有关,我设法用pdo_sqlite后端重现了同样的问题