如何选择属于 A 组的用户?
我的表格如下。
我的用户表。
ID | name |sex
1 | bob |1
2 | kayo |2
3 | ken |1
我的 fos_group 表
ID | name
1 | student
2 | teacher
我的 fos_user_user_group
user_id | group_id
1 | 1
2 | 2
3 | 1
Bob 和 Ken 属于 group_1(学生)
Kayo属于group_2(老师)
例如)我可以像这样从用户表中选择“鲍勃”
$query = $em->createQuery(
"SELECT p.name,p.sex
FROM UserBundle:User p WHERE
p.id = '1' );
但我想选择属于学生组的用户(鲍勃和肯)
我应该如何更改 createQuery 中的句子?
我只是想我需要加入表格...
额外的....
根据法比奥的回答,我已经尝试过这样
$query = $em->createQuery(
"SELECT p,p.id,p.username,p.userKey
FROM UserBundle:User p
INNER JOIN fos_user_user_group b
ON a.ID = b.user_id
INNER JOIN fos_group c
ON b.group_id = c.ID
WHERE c.group_id = '1'");
$this->data["teachers"] = $query->getResult();
但它说
[Semantical Error] line 0, col 94 near 'fos_user_user_group': Error: Class 'fos_user_user_group' is not defined.
我想这意味着我没有“fos_user_user_group”的实体。我只有 Group 和 User 的实体类,其他表是自动创建的。
同时,我在 $formmapper 的其他地方也这样使用过。
->add('teacher',
null,
array(
'query_builder' =>
function (\Doctrine\ORM\EntityRepository $rep) {
return $rep->
createQueryBuilder('s')
->join('s.groups', 'g')
->where('g.name = :group')->setParameter('group','TeacherGroup');
})
)
它运作良好,我怎样才能将这句话更改为 createQuery()?