I have the following query that uses an IN statement.
$ids = array(1,2,3);
$query = \'select o from Organisation o where o.id in (:ids)\';
$this->_entityM
I used this (setParameter didn't seem to work for me):
$em->createQuery('SELECT users FROM Entities\User users WHERE users.id IN (:ids)')
->setParameters(array('ids' => $ids));
http://redbeardtechnologies.wordpress.com/2011/07/01/doctrine-2-dql-in-statement/
Try passing the array itself to ->setParameter(...)
instead of imploding it into a string.
I'm struggling with the IN statement too, using the $query->expr()->in() construct...
Try:
$em->createQuery(“SELECT users FROM Entities\User users WHERE users.id IN (':ids')”)
->setParameters(array(‘ids’ => $ids));
I think the simple quotes around your parameters in the IN() part are necessary...
I solved this:
$con = $this->getEntityManager();
$query = $con->createQuery("SELECT cl
FROM BackendBundle:classifieds cl
INNER JOIN BackendBundle:locations lo WITH cl.locationId = lo.id
INNER JOIN BackendBundle:municipality mu WITH lo.municipalId = mu.id
WHERE cl.verified = false AND mu.id = ".$munId." AND cl.locationId NOT IN (:ids) ");
$query->setParameters(array('ids' => $locsIds));
return $query->getResult();