Нужно просто присоединиться к члену, который был сначала загружен в его галерею. Изображение, но у меня большая проблема, поскольку я новичок в symfony.getResult возвращает другой результат, чем SQL-запрос Symfony2
Таблица:
CREATE TABLE `member` (
`member_id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`member_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE `image` (
`image_id` int(10) NOT NULL AUTO_INCREMENT,
`member_id` int(10) NOT NULL,
`path` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`image_id`),
KEY `image_member_id_idx` (`member_id`),
CONSTRAINT `image_member_id` FOREIGN KEY (`member_id`) REFERENCES `member` (`member_id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Действие:
$items = $this->getDoctrine()
->getManager()
->getRepository('AcmeMyBundle:Member')
->createQueryBuilder('m')
->select('m','i')
->leftJoin('Acme\MyBundle\Entity\Image', 'i', 'WITH','i.memberId = m.memberId')
->addGroupBy('m.memberId')
->setMaxResults(10)
->getQuery()
->getArrayResult();
возвращается в 2 раза больше, чем записи в базе данных вместо предела и группировок настройки , когда я печатаю только ->getQuery->getSQL()
она возвращает
SELECT m0_.member_id AS member_id0,
m0_.name AS name1,
i1_.image_id AS image_id2,
i1_.path AS path3,
i1_.member_id AS member_id4
FROM member m0_
LEFT JOIN image i1_
ON (i1_.member_id = m0_.member_id)
GROUP BY m0_.member_id LIMIT 10
И этот запрос возвращает righ t ответ на выполнение его прямо из базы данных. Мне нужна помощь, где ошибка может быть?