$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中使用它。
答案 0 :(得分:10)
这里有几个选项。据我所知,默认情况下,您无法从实体存储库中找到结果作为数组。相反,你可以做以下两件事之一:
首先,您可以在实体对象上实现toArray()
方法(可能通过mapped superclass),只返回一个属性数组。
其次,您可以使用Doctrine查询语言使用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的更深入的文档here。