の配列と配列フィールドを検索する私は、次のクエリを持っている:ドクトリン2オプション
$roles = array();
$roles[] = 'ROLE_SUPER_ADMIN';
$roles[] = 'ROLE_ADMIN';
$roles[] = 'ROLE_TRUSTEE';
$roles[] = 'ROLE_MODERATOR';
$qb = $this->createQueryBuilder('u')
->select('u')
->where('u.username is not null')
->andWhere('u.roles IN (:roles)')
->setParameter('roles', $roles);
return $qb->getQuery()->getResult();
働きます。しかし、これは私が後にしていることではありません。 u.rolesは配列フィールドであり、任意の数の '役割'を含むことができます。そのフィールドに$ roleで定義された配列にリストされているいずれかのロールが含まれているかどうかを調べる必要があります。基本的に逆:
->andWhere('(:roles) IN u.roles')
しかし、これはエラーを投げます。
私はこれにすべて間違っていますか?
お返事ありがとうございます。残念ながら、私はそれを試しても動作しません。 u.rolesが文字列に展開され、IN文を使って検索する必要があると私には思えますが、それは間違っているかもしれません。他のアイデア? – Patrick