【发布时间】:2016-08-10 11:18:15
【问题描述】:
我正在尝试运行 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();
}
【问题讨论】:
-
你是如何存储
ur.role的?这是一个单独的实体还是User表中的一列? -
它是
user表中的一列 -
我认为你应该
$roleUser = implode(',', $this->container->getParameter('user_role'));而不是直接传递数组。
标签: php mysql sql-server symfony doctrine-orm