php - 如何使用联接表更改 Doctrine 结果中的数组结果层次结构
问题描述
我的联接查询:(在实体中不是关系)
$query = $this
->createQueryBuilder('f')
->select('f');
$query->leftJoin(IntranetType::class, 'it', 'WITH', 'it.flyerLayoutType = f.flyerLayout');
$query->addSelect('it');
$query->orderBy('f.filename');
$query->addOrderBy('it.flyerLayoutType');
// $flyers = $query->getQuery()->getArrayResult(); <-- fist try
$flyers = $query->getQuery()->getResult(Query::HYDRATE_ARRAY);
结果数组的格式为:
array(149) {
[0]=>
array(9) {
data from table with alias f
}
[1]=>
array(4) {
data from table with alias it
}
[2]=>
array(9) {
data from table with alias f
}
[3]=>
array(4) {
data from table with alias it
}
但我需要这样的格式:
array(149) {
[0]=>
array(9) {
data from table with alias f
['joined table']=>
array(4) {
data from table with alias it
}
}
[1]=>
array(9) {
data from table with alias f
['joined table']=>
array(4) {
data from table with alias it
}
}
只是层次结构......数组中的一个键=一个传单(一个项目)和连接数据......
解决方案
看来您只需要从中删除参数getResult()
(或将其替换为 default ::HYDRATE_OBJECT
)。
键“连接表”不会出现,但您将根据您的实体获得数据结构。
推荐阅读
- shortest-path - SSSP 算法:最小距离但在一定数量的“跳”下
- python-3.x - 如何将默认字典与列表中的值解析为独立字典
- stream - OCaml Marshal 超大数据结构
- python-3.x - 解析时未识别制表符
- javascript - HTML 和 CSS:单击按钮后使用垂直滚动条水平拆分页面
- c - 逆向工程 - sprintf 协助
- c++ - 为什么我有这个错误重载运算符?
- c++ - 我可以使用 linux gdb 调试我的 cpp 代码吗?如果是,我如何在通过对象调用的函数上保留断点
- image-processing - 无法为 scilab 安装 IPCV
- database - 如何使用多台笔记本电脑或虚拟机创建本地分布式数据库?