Straciłem kilka godzin w google, ale żadne z rozwiązań nie było dobre.Konstruktor zapytań Symfony2 Doctrine gdzie IN
mam ten 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)
;
mogę zrobić drugą kwerendę, a następnie wykonaj jak $qb->getDQL()
ale chciałbym buforują kwerendy?
Błąd:
Invalid parameter number: number of bound variables does not match number of tokens
omg czuję się tak głupio ... oczywiście użytkownik! nie zauważyłem tego ... i tak pomogły wartości array_! A teraz wreszcie magicznie działające $ arrayFolloweeIds = implode ("','", $ arrayFolloweeIds) również ... mam nadzieję, że ludzie to znajdą. dzięki ! – EnchanterIO
'array_values' również mi pomogło. Ale dlaczego? Używałem tablicy indeksowanej. Z drugiej strony, z kwerendą usuwania działało bez 'array_values'. Używam doctrine/orm v2.5.4 – alpham8
Myślę, że problem jest spowodowany przez indeks numeryczny poza kolejnością w tablicy lub ewentualnie posiadający indeksy liczbowe. Nie jest to jednak w 100% pewne, ale jeśli tak jest, to dlatego wartości array_values działają, ponieważ daje to nową poprawnie indeksowaną tablicę –