对于同一参数,createQueryBuilder和setParameters()具有多个值

时间:2018-09-28 17:42:40

标签: sql symfony

运行此代码时,结果只是同一参数的第二个值。但是我需要两个角色的值-value1和value2。 我的代码如下:

$builder
->add('name', EntityType::class, array(
'class' => 'App:Class',
'query_builder' => function (EntityRepository $u) {
              return $u->createQueryBuilder('z')
              ->andWhere('z.roles =:role')
              ->setParameters(array('role' => 'value1', 'role' => 'value2'));

2 个答案:

答案 0 :(得分:1)

尝试:

 $u->createQueryBuilder('z')
   ->andWhere('z.roles IN (:roles)');
   ->setParameter('roles', array('value1','value2'), \Doctrine\DBAL\Connection::PARAM_STR_ARRAY);

答案 1 :(得分:0)

您还可以使用类似这样的内容:

$rolesArray = array('role' => 'value1', 'role' => 'value2');
$queryBuilder = $u->createQueryBuilder('z')
                  ->andWhere($queryBuilder->expr()->in('z.roles', $roles));

return $queryBuilder;