我有三个表/实体的结构:User
(表users
;列id
和name
),Room
(表{{1 } {;列roome
和id
),以及number
(RoomUser
;列user_room
,id
,user_id
)。
现在,我想检索具有给定room_id
的{{1}}的所有Room
。 如何在不加入User
的情况下执行此操作?
id
所以在SQL中它就像
Room
如何使用$userId = 123;
// ...
$queryBuilder = $this->entityManager->createQueryBuilder();
$query = $queryBuilder->select('r')
->from(Room::class, 'r')
->join('r.RoomUsers', 'ru')
->where('ru.room_id = :userId') // room_id? ru.Room.id?
->setParameter('userId', $userId)
->getQuery();
$rooms = $query->getResult(Query::HYDRATE_OBJECT);
实现此简单请求?
答案 0 :(得分:0)
您可以使用MEMBER OF
(docs):
$query = $queryBuilder->select('r')
->from(Room::class, 'r')
->where(':user_id MEMBER OF r.users')
->setParameter('user_id', $userId)