php - 通过学说将结果作为数组(水合物数组)获取时,如何获取关联实体?
问题描述
我正在使用学说从 mysql 数据库中获取数据:
$array = $this->em->getRepository(Documents::class)->findAll();
这是输出:
对于我的情况,我想直接获取一个数组,所以我创建了一个函数:
$array = $this->em->getRepository(Documents::class)->getArray();
存储库:
public function getArray()
{
return $this->getEntityManager()
->getRepository(Documents::class)
->createQueryBuilder('e')
->select('e')
->getQuery()
->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY);
}
数组已创建,但缺少一些字段:
我怎样才能获取页面和产品?我希望我的数据显示为日期+"timestamp": "02.12.2019"
解决方案
忘记了需要其他设置的核心课程
只需使用getArrayResult()
function 而不是getResult()
. 它返回一个包含所有数据的数组
$query = $em->createQuery("SELECT test FROM namespaceTestBundle:Test test");
$tests = $query->getArrayResult();
Query#getResult():检索对象的集合。结果是对象的普通集合(纯)或对象嵌套在结果行中的数组(混合)。
Query#getArrayResult():检索一个数组图(嵌套数组),该数组图在很大程度上可以与 Query#getResult() 生成的对象图互换,用于只读目的。
我刚刚测试了将所有数据结果作为嵌套数组返回:
其他答案中的第二个解决方案也可以,但它们的工作方式不同:
另请参阅此答案https://stackoverflow.com/a/17499629/12232340和存储库
根据这个EntityRepository 类,findAll
不要接受多个参数。
推荐阅读
- sql - SQL Server 生成唯一的随机字符串
- python - Bokeh:CustomJS 错误 - 缺少 BokehJS 库
- php - 日期时间配置 php
- c# - Serializing complex XML string content
- airflow - Airflow ExternalTaskSensor 在第一次超时后进入无限 UP_FOR_RETRY 循环
- excel - 从报表过滤器创建新表
- c# - C# Selenium:发送键“{ENTER}”不起作用
- javascript - Postman AssertionError:预期 [ Array(9) ] 具有属性“EID”
- php - 使用来自 phpmyadmin 的文件路径将图像检索到网页上
- node.js - 如何使用间隔对服务器中的每个人进行 dm