Sql createQueryBuilder和setParameters()为同一参数创建多个值
当我运行这段代码时,结果只是同一参数的第二个值。但我需要角色的价值观——价值1和价值2。 我的代码如下所示: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')
$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;