我正在尝试运行sql查询。我正在尝试选择具有特定角色的用户。 在我的查询下面:
$roleUser= $this->container->getParameter('user_role');
$query = $this->getDoctrine()->getEntityManager()
->createQuery(
'SELECT u FROM UserBundle:User ur
WHERE ur.role IN :role_user')
->setParameters('role_user',$roleUser);
在我的config.yml中,我定义了我的用户角色
parameters:
user_role:
- ADMIN1
- ADMIN2
- ADMIN3
我想选择具有ADMIN1,ADMIN2或ADMIN3角色之一的所有用户。
以下是错误消息:
Warning: Invalid argument supplied for foreach() in /Test/vendor/doctrine/orm/lib/Doctrine/ORM/Query.php line 246
{
$types = array();
foreach ($this->parameters as $parameter) {
/** @var Query\Parameter $parameter */
$types[$parameter->getName()] = $parameter->getType();
}
答案 0 :(得分:2)
尝试使用setParameter
代替setParameters
:
试试这个:
->setParameter('role_user',$roleUser);
而不是:
->setParameters('role_user',$roleUser);
有关在文档中设置参数here的详细信息。
希望这个帮助