Doctrine Query Builder using Array

33,712

Solution 1

Or without the query builder:

$query = $em->createQuery('SELECT u FROM Users u WHERE u.id IN (:id)');
$query->setParameter('id', array(1, 9));
$users = $query->getResult();

Solution 2

In case someone runs into something similar, I used the query builder, The key point is to use the IN statement.

//...
$qb = $this->createQueryBuilder('u');
$qb->add('where', $qb->expr()->in('u.id', ':my_array'))
->setParameter('my_array', $Id_array);

Solution 3

On doctrine 2 is implemented by the repository now since 2.1 or 2.2

findBy(array('id' => array(1, 2, 3, 4, 5));
Share:
33,712
Mick
Author by

Mick

"Stop using tools that you don't understand" (talking to myself..) "Only use the tools that you actually need" (talking to myself again..) “No one has ever become poor by giving.” ― Anne Frank

Updated on July 05, 2022

Comments

  • Mick
    Mick almost 2 years

    I have an array of id:

    Id_array; //array(2) { [0]=> int(9) [1]=> int(10) } 
    

    I simply want to select the users using Id_array; I managed to do this when I don't have an array but just an integer:

    $query = $em->createQuery('SELECT u FROM Users u WHERE u.id = ?1');
    $query->setParameter(1, 9); // I tested the value 9 here
    $users = $query->getResult(); 
    

    How can I fetch all the users that correspond to Id_array?