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

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top