我有一个id:
数组Id_array; //array(2) { [0]=> int(9) [1]=> int(10) }
我只想选择使用Id_array的用户; 当我没有数组而只是一个整数时,我设法做到了这一点:
$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();
如何获取与Id_array对应的所有用户?
答案 0 :(得分:19)
或者没有查询构建器:
$query = $em->createQuery('SELECT u FROM Users u WHERE u.id IN (:id)');
$query->setParameter('id', array(1, 9));
$users = $query->getResult();
答案 1 :(得分:7)
如果有人碰到类似的东西,我使用了查询构建器,关键点是使用IN语句。
//...
$qb = $this->createQueryBuilder('u');
$qb->add('where', $qb->expr()->in('u.id', ':my_array'))
->setParameter('my_array', $Id_array);
答案 2 :(得分:5)
关于原则2,自2.1或2.2以来由存储库实现
findBy(array('id' => array(1, 2, 3, 4, 5));