Я новичок в Doctrine, но немного знаком с SQL. У меня есть очень простая схема с пользователями и вызовами. Каждый вызов имеет «идентификатор претендента» и «идентификатор оппонента», которые являются внешними ключами в таблице пользователей. Я хочу напечатать список всех проблем, с выводом, являющимся именами из таблицы User. Вот мой запрос Учения;
$q = Doctrine_Query::create()
->select('u1.name challenger, u2.name opponent')
->from('Challenge c')
->leftJoin('c.Challenger u1')
->leftJoin('c.Opponent u2');
Проблема в том, что это возвращает только одну строку. Я использовал команду getSqlQuery (), чтобы посмотреть на сгенерированный SQL, который в итоге выглядит так:
SELECT u.name AS u__0, u2.name AS u2__1 FROM challenge c
LEFT JOIN user u ON c.challenger_id = u.id
LEFT JOIN user u2 ON c.opponent_id = u2.id
При запуске в стороннем клиенте SQL этот запрос извлекает все строки, как и ожидалось. Любая идея, как я могу получить все строки из Доктрины? Я использую $q->execute()
, который, как я понимаю, должен работать для нескольких строк.
Спасибо.