5

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 に対応するすべてのユーザーを取得するにはどうすればよいですか?

4

3 に答える 3

23

または、クエリビルダーなし:

$query = $em->createQuery('SELECT u FROM Users u WHERE u.id IN (:id)');
$query->setParameter('id', array(1, 9));
$users = $query->getResult();
于 2012-07-19T16:47:58.770 に答える
9

誰かが似たようなことに出くわした場合に備えて、クエリビルダーを使用しました。キーポイントは IN ステートメントを使用することです。

//...
$qb = $this->createQueryBuilder('u');
$qb->add('where', $qb->expr()->in('u.id', ':my_array'))
->setParameter('my_array', $Id_array);
于 2012-07-19T07:14:22.247 に答える
7

On doctrine 2 は、2.1 または 2.2 以降、リポジトリによって実装されています。

findBy(array('id' => array(1, 2, 3, 4, 5));
于 2013-10-24T22:05:39.410 に答える