4
SQLクエリを実行しようとしています。特定の役割を持つユーザーを選択しようとしています。私のクエリ以下 :私のconfig.ymlでSymfony 2.5:配列をパラメータとしてWhere句を使用した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);
私は役割ADMIN1、ADMIN2またはadmin3をのいずれかを持っているすべてのユーザーを選択したい私のユーザーの役割
parameters:
user_role:
- 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'テーブルの中の列ですか? – tftd
'user'テーブル内に列があります –
実際に配列を直接渡すのではなく、おそらく' $ roleUser = implode( '、$ this-> container-> getParameter(' user_role ')); – tftd