我有3个实体的Symfony:查询生成器先进的加入
[User] ---OneToMany---> [UserRole] ---ManyToOne---> [Role]
因此存在一个连接表user_role
。
我想创建一个QueryBuilder
,返回:
所有用户,有特定的作用(通过任何属性标识的作用)。
我对此感到困惑,因为我必须处理与many-to-many
关系的连接。在纯SQL中很容易,但是我无法为此为QueryBuilder提供便利。
加入User
和Role
实体直接失败,我不得不找到一种方法来包含链接表user_role
。
有人可以提示我来管理这个吗?
更新
这是从我现在有一个摘录:
->add('adm', 'entity', array(
'class' => 'ZanderUserBundle:User',
'query_builder' => function(EntityRepository $r) {
$qb = $r->createQueryBuilder('u');
$qb->join('ZanderUserBundle:Role', 'r')->where("r.role = 'ROLE_MANAGER'");
return $qb;
},
'label' => 'Manager',
'attr' => array(
'class' => 'inputElement'
)))
结果是,将返回所有用户。
更新你的问题,添加你到目前为止尝试过的。 –
学说可以加入many2many关系,请显示您尝试过的错误 – Rawburner