dongshen2903
2012-07-19 06:38
浏览 53
已采纳

使用Array的Doctrine Query Builder

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?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • dongping9475 2012-07-19 16:47
    已采纳

    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();
    
    点赞 打赏 评论
  • douzhu7507 2012-07-19 07:14

    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);
    
    点赞 打赏 评论
  • doudi4621 2013-10-24 22:05

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

    findBy(array('id' => array(1, 2, 3, 4, 5));
    
    点赞 打赏 评论

相关推荐 更多相似问题