Ну .. у меня есть простая сущность, и я пытался получить от нее все записи:
$em = $this->getDoctrine()->getManager();
$news = $em->getRepository('AppBundle:Article')->findAll();
var_dump($news); exit;
Но он возвращает мне очень большой ответ, проверьте изображение ниже:
Когда я попытался использовать этот фрагмент кода, он вернул мне правильные записи в массиве, но почему findAll не работает правильно, он работает для других объектов?
$news = $this->getDoctrine()
->getRepository('AppBundle:Article')
->createQueryBuilder('e')
->select('e')
->getQuery()
->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY);
Хм .. он возвращает мне только одну запись (у меня только одна), так что это правильно, но почему, когда я использую var_dump для других сущностей, он возвращает мне правильный объект .. вероятно, эта сущность - единственная, у кого есть отношения (manyToOne) с другой enity .. xmm
Скорее всего, потому что здесь вы возвращаете объект, а не простой массив. Таким образом, помимо данных записи в объекте много данных. Вы также можете сделать дамп в своем представлении ветки, выполнив {{ dump() }}. Последний может быть с параметром или без него. Чем больше будешь пользоваться дампом, тем больше разбираешься в них ...;)
Он делает то, что делает ORM. Вы определили подход к получению гидратированного результата массива с помощью Query Builder. Это то, что есть.
Кстати, для вашего второго фрагмента кода замените getResult() на execute() таким образом, он также предоставит объект, которым будет легче манипулировать ...
Вы можете гидратировать запрос по умолчанию, используя getArrayResult ()
Не могли бы вы поделиться самыми первыми строчками своего класса AppBundle\Article'? Я имею в виду раздел с этими строками кода class Article { и аннотациями над ним
Возможный дубликат Слишком много данных с var_dump в symfony2 doctrine2
Спасибо всем :)






Вместо
var_dump($news)используйте дамп Symfony:dump($news). Это упростит чтение вашей дампа, как для вас, так и для нас. Это может помочь вам лучше понять, почему он такой "большой" ...;)