Symfony和使用setParameters的条令使结果集为空

Symfony和使用setParameters的条令使结果集为空,symfony,doctrine,Symfony,Doctrine,我不明白为什么我对这段代码有不同的结果: 我唯一要更改setParameter的标记 结果是空的 这很有效 $this->createQueryBuilder('t') ->select('t, c') ->leftJoin('t.documentos', 'c') ->where('t.flagStatus = :status') ->andWhere('c.flagStatus = :status') ->andWhere('t.idSecretaria

我不明白为什么我对这段代码有不同的结果:

我唯一要更改setParameter的标记

结果是空的

这很有效

$this->createQueryBuilder('t')
->select('t, c')
->leftJoin('t.documentos', 'c')
->where('t.flagStatus = :status')
->andWhere('c.flagStatus = :status')
->andWhere('t.idSecretaria in (:s)')
->andWhere('t.typedoc = 1')
->orderBy('c.tituloInformacao', 'ASC')
->setParameters([
    'status' => true,
    's' => 8,
])
->getQuery()
->execute();
但如果给出一个空的结果集,这将不起作用

$this->createQueryBuilder('t')
->select('t, c')
->leftJoin('t.documentos', 'c')
->where('t.flagStatus = :status')
->andWhere('c.flagStatus = :status')
->andWhere('t.idSecretaria in (:s)')
->andWhere('t.typedoc = :td')
->orderBy('c.tituloInformacao', 'ASC')
->setParameters([
    'status' => true,
    's' => 8,
    'td' => 1,
])
->getQuery()
->execute();

没有明显的东西跳出来。也许可以检查调试工具栏并比较生成的sql。我假设你的小枝模板和什么不完全一样?小枝还是一样。。同时我也在转储结果。。现在,我将尝试比较调试工具栏生成的查询,如您所示。谢谢,你知道这有什么疯狂吗?工具栏上没有区别,如果我在Oracle SQL编辑器中复制并粘贴可运行查询,查询将执行并返回数据。可能与类型有关。添加['boolean'、'integer'、'integer']作为setParameter的第二个参数。旧版本曾经多次使用同一个键(:status)时出现问题。所以你也可以试试cstatus和tstatus。只是猜测而已。可能是特定于oracle的。可能需要仔细检查数据库列类型。