如何将原则 2 结果作为关联数组获取



我想在数组中获取此代码的结果:

 $person = $em->find('Person', 2);

我正在使用原则2。 我想要数组形式的上述结果。.

PHP 版本 5.4

最好的方法是在存储库类中编写方法或内联创建查询生成器(但不建议这样做(。

use DoctrineORMQuery;

...

$qb = $em->getRepository(Person::class)->createQueryBuilder('p');
$qb
   ->andWhere('p.id = :id')
   ->setParameter('id', $id)
;
$person = $qb->getQuery()->getResult(Query::HYDRATE_ARRAY);

取代

$qb->getQuery()->getResult(Query::HYDRATE_ARRAY)

$qb->getQuery()->getOneOrNullResult(Query::HYDRATE_ARRAY)

如果你只需要获取一个元素。

我找到了一个解决方案:

$person = $em->find('Person', 2);
$personx = json_decode(json_encode((array)$person), true);
echo '<pre>';
print_r($personx);
echo '<pre>'; 

它对我来说非常有效。

由于$person可能是带有循环引用的对象,因此不能直接转换为数组,但您可以使用序列化,就像这里描述的那样Symfony Serialize doctrine entity

或者您可以手动执行此操作:

$person_array = ['name' => $person->getName(), 'id' => $person->getId()];

最新更新