0
我有三個表/實體的一個結構:User
(表users
;列id
和name
),Room
(表roome
;列id
和number
),和RoomUser
(user_room
;列id
,user_id
,room_id
)。如何在Doctrine中使用WHERE作爲JOINed表的外鍵?
現在我想檢索所有Room
s的User
與給定的id
。 如何不加入Room
s?
$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);
所以在SQL它會是這樣的
SELECT *
FROM rooms
JOIN room_users ON room_users.room_id = rooms.id
WHERE user_id = 123;
如何實現與QueryBuilder
這個簡單的要求嗎?
難道我的回答幫助你的?如果是這樣,請接受我的回答。如果沒有,請讓我(和社區)知道。 –