I am trying to run sql query. I am trying to select users with specific roles. Below my query:
我正在尝试运行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);
In my config.yml I defined my user roles
在我的config.yml中,我定义了我的用户角色
parameters:
user_role:
- ADMIN1
- ADMIN2
- ADMIN3
I want to select all the user that has one of the role ADMIN1, ADMIN2 or ADMIN3.
我想选择具有ADMIN1,ADMIN2或ADMIN3角色之一的所有用户。
Here is the error message:
这是错误消息:
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();
}
1 个解决方案
#1
2
Try with setParameter
instead of setParameters
:
尝试使用setParameter而不是setParameters:
try this:
尝试这个:
->setParameter('role_user',$roleUser);
instead of this:
而不是这个:
->setParameters('role_user',$roleUser);
More info about setting parameters here in the doc.
有关在doc中设置参数的更多信息。
Hope this help
希望这有帮助
#1
2
Try with setParameter
instead of setParameters
:
尝试使用setParameter而不是setParameters:
try this:
尝试这个:
->setParameter('role_user',$roleUser);
instead of this:
而不是这个:
->setParameters('role_user',$roleUser);
More info about setting parameters here in the doc.
有关在doc中设置参数的更多信息。
Hope this help
希望这有帮助