Doctrine Symfony2条令查询生成器在何处

Doctrine Symfony2条令查询生成器在何处,doctrine,dql,query-builder,Doctrine,Dql,Query Builder,我在谷歌上浪费了三个小时,但没有一个解决方案是好的 我有一个querybuilder: $qb2=$this->createQueryBuilder('s') ->addSelect('u') ->innerJoin('s.user','u') ->where("u.id IN(:followeeIds)") ->andWhere('s.admin_status = false')

我在谷歌上浪费了三个小时,但没有一个解决方案是好的

我有一个querybuilder:

        $qb2=$this->createQueryBuilder('s')
        ->addSelect('u')
        ->innerJoin('s.user','u')
        ->where("u.id IN(:followeeIds)")
        ->andWhere('s.admin_status = false')
        ->setParameter('user', $user)
        ->setParameter('followeeIds', $arrayFolloweeIds)
        ->orderBy('s.id','DESC')
        ->setMaxResults(15)
    ;
我可以执行第二个查询,然后执行类似
$qb->getDQL()
的操作,但是我会缓存查询吗

错误:

Invalid parameter number: number of bound variables does not match number of tokens

您正在设置用户参数,但我看不到在任何地方的查询中使用它

另外,我在
中遇到了问题,在
中使用数组的原则
QueryBuilder
也会给我带来类似的错误,奇怪的是,在绑定参数之前运行
array\u value
似乎也解决了这些问题

尝试:


在Symfony2.8中,以下示例对我有所帮助

...
$qb2->where(
     $qb2->expr()->in('u.id', ':ids')
)
->setParameter('ids', $ids_array)
...

天哪,我觉得自己很愚蠢。。。当然是用户!我没有注意到。。。是的,数组_值有帮助!现在终于神奇地运行$ArrayFolloweids=内爆(“,”,$ArrayFolloweids)了。。。我希望人们能找到它。谢谢<代码>数组_值
也帮助了我。但是为什么呢?我使用的是索引数组。另一方面,对于delete查询,它在没有
array\u值的情况下工作。我使用的是doctrine/orm v2.5.4,我认为问题是由于数组中的数字索引顺序错误或可能有字符串数字索引造成的。虽然不是100%确定,但如果这就是为什么数组_值有效的原因,因为它为您提供了一个正确索引的新数组nice,顺便说一句@young,根据其值命名变量是一种不好的做法。例如“数组”、“字符串”。一个有意义的名称就足够了:$ids用于id列表,如果它只是一个整数,$id:)谢谢,@EnchanterIO。我同意这种情况。但是PHP不支持显式类型。那么,我如何知道正在使用哪种类型的变量呢?作为示例,我有一个由逗号分隔的整数列表,或者会话密钥数组?你能给出更重要的论据吗?谢谢:)当然可以。如果有一个由逗号分隔的整数列表,则没有数组,而是字符串。所以我称之为:commacontainatedds。并迁移到PHP7以获得严格类型;)如果你有更多问题,可以在twitter上联系我:
$ids
意味着多个,所以我希望有一个数组。如果不是,我会称它为
$idsString
,因为它包含一个字符串值,并且是一个异常值。
...
$qb2->where(
     $qb2->expr()->in('u.id', ':ids')
)
->setParameter('ids', $ids_array)
...