我有2个实体:客户端和用户。用户可以分配给客户端(多对多;一个用户可以管理多个客户端,客户端可以由多个用户管理)。在我的应用程序中,我有客户名单。有没有一种方法可以使用Doctrine在列表顶部显示未分配用户的客户端?或者我应该只使用findAll()并在PHP中进行排序?通过空ArrayCollection对实体排序?
编辑:所以基本上,通过创建@ORM \ ManyToMany关系,我在MySQL中有3个表:客户端,用户和clients_of_users(与client_id和user_id列)。使用普通的SQL:
SELECT c.id, c.name, c.surname, COUNT(cof.user_id) as `Number of Users`
FROM clients c
LEFT JOIN clients_of_users cof ON c.id = cof.client_id
GROUP BY c.id
ORDER BY `Number of Users` ASC
与此查询我得到的结果:
1 Name1 Surname1 0
6 Name6 Surname6 0
5 Name5 Surname5 1
7 Name7 Surname7 1
3 Name3 Surname3 2
4 Name4 Surname4 3
2 Name2 Surname2 4
所以耶!我有没有用户的客户。最后,我想有这个名单由客户端编号的顺序排列,但仍与客户端,而在顶部的用户,这样的结果是这样的:
1 Name1 Surname1 0
6 Name6 Surname6 0
2 Name2 Surname2 4
3 Name3 Surname3 2
4 Name4 Surname4 3
5 Name5 Surname5 1
7 Name7 Surname7 1
所以,这一切我想使用的Symfony2 /学说的方式来实现。这可能吗?
的findAll()和排序在PHP中不再支持大型数据库。使用你的repo建立一个查询生成器 – rommct
使用这个查询存储库的所有对象,并以DES命令的名称进行排序$ repo-> findBy(array(),array('name','DESC');' – Matteo