A menudo tengo la necesidad de usar el operador IN dentro del WHERE de una consulta DQL con Doctrine y casi siempre se me olvida como usarlo.
Para ello voy a explicar como usarlo a continuación con un ejemplo:
– Imaginamos que tenemos un array con los posibles valores que queremos seleccionar en la parte del where de la consulta tal que asi:
$filters = array(1, 2, 3, 4, 10, 15, 25);
-Ahora, hacemos nuestra consulta de la siguiente forma:
$users = $qb
->addSelect('user')
->from('UsuarioBundle:User', 'user')
->join('user.userGroup', 'userGroup')
->where($qb->expr()->in('userGroup.id', $filters))
->getQuery()
->getResult();
De esta forma, usando el expr() del QueryBuilder podemos usar los operadores IN, NOT IN, BETWEEN, MAX, MIN, etc. Podeis ver toda la documentacion y los operadores disponibles en la documentacion oficial de Doctrine sobre el querybuilder:
-http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/query-builder.html#high-level-api-methods
Ale, espero que os sirva de ayuda.
Saludos Devs¡