Symfony2, Доктрина 2: объект getResult - PullRequest
6 голосов
/ 14 мая 2011
$posts = $em->find('Application\BlogBundle\Entity\Post',1);
print_r ($posts);

Почему я получил это?

Barii\BlogBundle\Entity\Post Object ( [id:Barii\BlogBundle\Entity\Post:private] => 1 [title:Application\BlogBundle\Entity\Post:private] => something [body:Application\BlogBundle\Entity\Post:private] => content  )

вместо простого массива, подобного этому:

array ( [id] => 1,
        [title] => "something",            
        [body] => "content"  )

Я использую его с Symfony 2.

1 Ответ

10 голосов
/ 15 мая 2011

У вас есть несколько вариантов здесь.Насколько я знаю, вы не можете найти результаты в виде массивов из хранилищ объектов по умолчанию.Вместо этого вы можете сделать одну из двух вещей:

Во-первых, вы можете реализовать метод toArray() для вашего объекта сущности (возможно, через сопоставленный суперкласс ), который просто возвращает массив свойств..

Во-вторых, вы можете использовать Doctrine Query Language для извлечения необходимой вам информации, используя метод getArrayResult(), возможно, что-то вроде этого:

$query = $em->createQuery('SELECT p FROM Application\BlogBundle\Entity\Post p WHERE p.id=:pid');
$query->setParameter('tid', $postId);
$result = $query->getArrayResult(); // shortcut for $query->getResult(Query::HYDRATE_ARRAY);

Более подробная документация по DQL здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...