Doctrina: múltiple (en la que o en la que) consulta?
-
23-09-2019 - |
Pregunta
Tengo problemas para la elaboración de una consulta bastante sencillo con Doctrina ...
Tengo dos matrices (países $, $ ciudades) y tengo que comprobar si los valores de registro de la base concordaría con cualquier interior tampoco. Busco algo como:
->whereIn('country', 'city', $countries, $cities)
... con 'país' EN DONDE ser de $ países y 'ciudad' de ser una DONDE EN $ para la ciudad.
Podría separar las dos cosas a cabo, pero la consulta necesaria tiene un montón de otras condiciones de manera que no es posible. El SQL resultante que estoy después sería:
SELECT ...
WHERE ...
AND ...
AND ...
AND ('country' IN (1,2,3) OR 'city' IN (7,8,9))
AND ...
AND ...;
Por lo tanto uno podría pensar que es también como una cuestión de horquillado solamente. Alguien sabe si esto es posible con Doctrina DQL? He mirado a través de la documentación, pero no puedo encontrar ninguna dirección.
Gracias
Solución
Después de una hora de experimentar en este sentido, aquí está la sintaxis para hacer que funcione.
$q->andWhere('country IN ? OR city IN ?', array(array(1, 2, 3), array(7, 8, 9)));
Otros consejos
¿Por qué no usar algo como?
$countryIds=[1,2,3];
$cityIds=[7,8,9];
$q->whereIn('country',$countryIds)->andWhereIn('city',$cityIds);
Además, la cadena de ellos juntos por el contexto (la mayoría de los métodos Doctrina regresan $ this).
http: //www.symfony-project .org / doctrine / 1_2 / es / 06-trabajo-con- de datos