と の 2 つのクラスがUserあり、ロールを持つユーザーのクエリを返すRoleを作成する必要があります。Symfony 2 のエンティティ フォーム フィールドにこれが必要です。フォーム クラスの定義には、前述のフィールドの次のスニペットがあります。QueryBuilderROLE_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いただければ、非常に感謝しています...
ご協力いただきありがとうございます!