我有一个查询来获取具有日期的实体的用户名:
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中使用其他解决方案?
答案 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
希望这个帮助