と の 2 つのクラスがUser
あり、ロールを持つユーザーのクエリを返すRole
を作成する必要があります。Symfony 2 のエンティティ フォーム フィールドにこれが必要です。フォーム クラスの定義には、前述のフィールドの次のスニペットがあります。QueryBuilder
ROLE_PROVIDER
$builder->add('provider', 'entity', array(
'class' => 'ElCuadreAccountBundle:User',
'property' => 'username',
'query_builder' => function(UserRepository $ur) {
return $ur->getUsersByRoleQB('ROLE_PROVIDER');
},
'required' => true,
));
そして、私のカスタムには、オブジェクトUserRepository
を返す次の関数があります。QueryBuilder
public function getUsersByRoleQB($role) {
$qb = $this->createQueryBuilder('u');
return $qb->join('u.roles','r')
->where($qb->expr()->in('r.role',$qb->expr()->literal($role)))
->orderBy('u.username', 'ASC');
}
もちろん、これは機能しませんが、私のニーズを説明するために貼り付けました。
私は周りを見回してきましたが、Doctrine2 は関連によるフィルタリングをネイティブにサポートしていないようです。このページDQL
では、彼らはそう言っており、この種のフィルタリングに使用することを提案しています. 私の問題は、文QueryBuilder
からオブジェクトを作成する方法が見つからないことです。DQL
適切なクエリも提供してDQL
いただければ、非常に感謝しています...
ご協力いただきありがとうございます!