Доктрина где в с Doctrine_Query - PullRequest
2 голосов
/ 25 марта 2011

можно ли сделать:

$q->createQuery('q')
  ->whereIn('q.id', $q2)

Где $ q2 - другой объект Doctrine_Query. Потому что мой подзапрос сложный, и я не хочу писать его в SQL ...

Ответы [ 2 ]

2 голосов
/ 25 марта 2011

К сожалению, согласно документации Doctrine API , вы не можете передать другой объект запроса в whereIn(), поэтому вам придется заранее получить ваши идентификаторы и передать их в массив. Будьте осторожны, потому что, если вы передадите пустой массив, для этих идентификаторов будет NO FILTERING . Другими словами: он вернет все строки, присутствующие в вашей таблице, вместо ни одной.

0 голосов
/ 04 декабря 2011

При использовании whereIn параметр должен быть массивом.Вы можете использовать execute (array (), Doctrine_Core :: HYDRATE_ARRAY), чтобы вернуть массив вместо объекта.

...