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->_entityManager->createQuery($query) ->setParameter('ids', implode(', ', $ids))
Doctrine is not returning any results, I think it is because of something wrong in the conversion that Doctrine does for the passed parameter $ids
which is an array.
How to make it work?
Try passing the array itself to ->setParameter(...)
instead of imploding it into a string.
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();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With