query - install doctrine symfony 4
Symfony2 Doctrine querybuilder donde IN (2)
¿Está configurando el parámetro de usuario pero no veo que se use en la consulta en ninguna parte?
También tuve problemas con WHERE IN
y Doctrine QueryBuilder
con arrays que me darían un error similar, y, curiosamente, ejecutar array_values
antes de vincular el parámetro parecía resolver esos problemas también.
Tratar:
$qb2=$this->createQueryBuilder(''s'')
->addSelect(''u'')
->innerJoin(''s.user'',''u'')
->where("u.id IN(:followeeIds)")
->andWhere(''s.admin_status = false'')
->setParameter(''followeeIds'', array_values($arrayFolloweeIds))
->orderBy(''s.id'',''DESC'')
->setMaxResults(15)
;
Perdí tres horas de google, pero ninguna de las soluciones era buena.
Tengo este constructor de consultas:
$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)
;
Podría hacer una segunda consulta y luego hacer como $qb->getDQL()
pero ¿tendré que cachear la consulta?
Error:
Invalid parameter number: number of bound variables does not match number of tokens
En Symfony2.8 el siguiente ejemplo me ayuda
...
$qb2->where(
$qb2->expr()->in(''u.id'', '':ids'')
)
->setParameter(''ids'', $ids_array)
...