我正在处理以下情况:
我有一个类聊天室包含一个用户数组:
#[ORMManyToMany(targetEntity: User::class)]
#[Groups([ChatRoom::GROUP_GET])]
private iterable $users;
我添加了一个扩展,它应该添加到收集操作查询中,如下所示:
$queryBuilder
->leftJoin("$rootAlias.users", 'us')
->andWhere('us IN (:current_user)')
->setParameter('current_user', array($user->getId()));
这将返回正确的聊天室,但在Users数组中,我只会得到我正在搜索的一个,而不是存储在数据库中的所有聊天室。
你知道怎么解决这个问题吗。。?
我不清楚你想做什么。
如果你需要获取当前聊天室的所有用户,那么如果你有多对多聊天室用户关系,就不需要扩展。你已经有了。
如果你需要获取用户的所有聊天室,你需要用户聊天室关系(通过相同的chat_rooms_users表(。
有了这些关系,您可以调用getChatRooms((&getUsers((方法。所有这些功能都可以通过标准条令关系获得。