Ich versuche SQL-Abfrage auszuführen. Ich versuche, Benutzer mit bestimmten Rollen auszuwählen. Unter meiner Anfrage:Symfony 2.5: SQL-Abfrage mit WHERE IN-Klausel mit einem Array als Parameter
$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 meinem config.yml definiert ich meine Benutzerrollen
parameters:
user_role:
- ADMIN1
- ADMIN2
- ADMIN3
ich alle Benutzer auswählen möchten, die eine der Rolle ADMIN1, ADMIN2 oder Admin3 hat. Hier
ist die Fehlermeldung:
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();
}
Wie speichern Sie die 'ur.role'? Ist dies eine separate Entität oder ist es eine Spalte innerhalb der 'User' Tabelle? – tftd
Es ist ein colum innerhalb der 'Benutzer' Tabelle –
Ich denke, Sie sollten wahrscheinlich $ RoleUser = implode (',', $ this-> container-> getParameter ('user_role'))); 'anstatt das Array direkt übergeben. – tftd