I losted trilion hours google this but none of the solutions were good.
I have this 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)
;
I could do a second query and then do like $qb->getDQL()
but have would i cache the query ?
Error:
Invalid parameter number: number of bound variables does not match number of tokens
You are setting the user parameter but I do not see it being used in the query anywhere?
Also I had issues with WHERE IN
and Doctrine QueryBuilder
with arrays would give me a similar error, and oddly enough running array_values
before binding the parameter seemed to solve those issues as well.
Try:
$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)
;