Php 将查询结果转换为数组数组

Php 将查询结果转换为数组数组,php,doctrine-orm,Php,Doctrine Orm,给了我一个包含实体的数组,但我需要实体作为数组 如何将实体转换为数组?我也有同样的问题。返回get\u object\u vars($this)不是一个好的解决方案,因为它也转换内部的条令对象/属性。经过一些研究,我发现了这个类:它从实体中创建干净的数组或JSON,并删除不必要的项。文档位于。例如,我使用了以下代码: $shops = $this->em->getRepository('models\Shop')->findAll(); 条令允许您在执行查询时指定水合模式,从

给了我一个包含实体的数组,但我需要实体作为数组


如何将实体转换为数组?

我也有同样的问题。
返回get\u object\u vars($this)
不是一个好的解决方案,因为它也转换内部的条令对象/属性。经过一些研究,我发现了这个类:它从实体中创建干净的数组或JSON,并删除不必要的项。文档位于。例如,我使用了以下代码:

$shops = $this->em->getRepository('models\Shop')->findAll();

条令允许您在执行查询时指定水合模式,从而更改返回结果的数据类型。在这种情况下,您需要Query::hydrome\u数组。它不允许您在存储库中的默认findAll()方法上指定此选项。您需要为它编写自己的DQL

如果需要实体集合作为数组:

$patientProfile = $this->em->getRepository('Entities\Patientprofile')->findOneByuserid('2222222');
$entitySerializer=new Bgy\Doctrine\EntitySerializer($this->em);
$patientProfile=$entitySerializer->toArray($patientProfile);
如果需要单个实体作为数组,例如特定ID:

$query = $em->createQuery('SELECT u FROM User u');
$entites = $query->execute(array(), Query::HYDRATE_ARRAY);

// If you don't have parameters in the query, you can use the getResult() shortcut
$query = $em->createQuery('SELECT u FROM User u');
$entities = $query->getResult(Query::HYDRATE_ARRAY);

这些方法是在和上定义的。

entity as array entity看起来怎么样?数组看起来怎么样?如何在Zend Framework 2中安装它?你能像白痴一样解释吗?:)但这使得它不可能与抽象的EntityRepository->findAll()方法一起使用。
$query = $em->createQuery('SELECT u FROM User u WHERE u.id = ?1');
$query->setParameter(1, $id);
$entity = $query->getSingleResult(Query::HYDRATE_ARRAY);