Sql createQueryBuilder和setParameters()为同一参数创建多个值

Sql createQueryBuilder和setParameters()为同一参数创建多个值,sql,symfony,Sql,Symfony,当我运行这段代码时,结果只是同一参数的第二个值。但我需要角色的价值观——价值1和价值2。 我的代码如下所示: $builder ->add('name', EntityType::class, array( 'class' => 'App:Class', 'query_builder' => function (EntityRepository $u) { return $u->createQueryBuilder('z')

当我运行这段代码时,结果只是同一参数的第二个值。但我需要角色的价值观——价值1和价值2。 我的代码如下所示:

$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'));
$rolesArray = array('role' => 'value1', 'role' => 'value2');
$queryBuilder = $u->createQueryBuilder('z')
                  ->andWhere($queryBuilder->expr()->in('z.roles', $roles));

return $queryBuilder;
尝试:

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

您还可以使用类似以下内容:

$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'));
$rolesArray = array('role' => 'value1', 'role' => 'value2');
$queryBuilder = $u->createQueryBuilder('z')
                  ->andWhere($queryBuilder->expr()->in('z.roles', $roles));

return $queryBuilder;