QueryBuilder查询数组值

时间:2015-08-03 09:36:14

标签: php arrays symfony doctrine-orm

我有一个查询来获取具有日期的实体的用户名:

return $this->createQueryBuilder('t')
    ->select('t.username')
    ->where('t.date = :date')
    ->andWhere('t.username = :username')
    ->setParameter('date', $date)
    ->setParameter('username', $username)
    ->getQuery()
;

但是,当我想在数组中找到用户名时,我使用它:

if (in_array($user_array, $username) != true) {

我得到了这个$username数组:

array(1) {
  [0] =>
  array(1) {
    'username' =>
    string(9) "username1"
  }
}
array(1) {
  [0] =>
  array(1) {
    'username' =>
    string(10) "username90"
  }
}
array(1) {
  [0] =>
  array(1) {
    'username' =>
    string(10) "username12"
  }
}

甚至可以搜索用户名是否在数组中?我是否需要调整我的QueryBuilder代码,还是需要在Symfony中使用其他解决方案?

1 个答案:

答案 0 :(得分:4)

您可以使用in功能。例如:

    public function getUser($arrays, $date)
    {
 $qb = $this->createQueryBuilder('t');
return $qb
    ->select('t.username')
    ->where('t.date = :date')
    ->andWhere($qb->expr()->in('t.username', $arrays) )
    ->setParameter('date', $date)
    ->getQuery()
;
}

更多信息here

希望这个帮助