QueryBuilder查询数组值

2 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()
;
Run Code Online (Sandbox Code Playgroud)

但是,当我想在数组中查找用户名时,可以使用以下命令:

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"
  }
}
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*teo 5

您可以使用该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()
;
}
Run Code Online (Sandbox Code Playgroud)

更多信息在这里

希望有帮助