运行此代码时,结果只是同一参数的第二个值。但是我需要两个角色的值-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'));
答案 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;