php – Doctrine 1.2 hydrate方法 – 数组到模型对象

栏目: PHP · 发布时间: 7年前

内容简介:我对Doctrine model hydrate()方法有一点问题.我使用这种方法从给定的数组中水合一个conrete模型的对象,如下所示:使用嵌套的子模型对简单物体进行保湿时,一切都很完美.现在的问题是我需要使用嵌套对象来水合(使用此方法)一个对象(其中一些对象也有嵌套对象).如果我使用HYDRATE_RECORD就可以了,但查询中的所有记录都将作为对象返回,这意味着更多的内存消耗.因此,我正在使用HYDRATE_ARRAY并按需将具体数组水合成一个对象.

我对Doctrine model hydrate()方法有一点问题.我使用这种方法从给定的数组中水合一个conrete模型的对象,如下所示:

$model = new Doctrine\Model\Model;
$model->hydrate($model_array);

使用嵌套的子模型对简单物体进行保湿时,一切都很完美.现在的问题是我需要使用嵌套对象来水合(使用此方法)一个对象(其中一些对象也有嵌套对象).

如果我使用HYDRATE_RECORD就可以了,但查询中的所有记录都将作为对象返回,这意味着更多的内存消耗.因此,我正在使用HYDRATE_ARRAY并按需将具体数组水合成一个对象.

假设我有一个模型A,它有嵌套模型AB,AC(一对多),AD和AC有另一个嵌套模型ACE.在A数组的print_r之后,我们可以看到这个结构:

A Array (
    ...
    ab Array ( ... )
    ac Array (
        AC Array (
            ...
            ace Array ( ... )
        )
        AC Array (
            ...
            ace Array ( ... )
        )
        ...
    )
    ad Array ( ... )
)

通常在使用水合物后,我会认为这将是我的目标:

A Object {
    ...
    ab Object { ... }
    ac Array (
        AC Object {
            ...
            ace Object { ... }
        }
        AC Object {
            ...
            ace Object { ... }
        }
        ...
    )
    ad Object { ... }
}

但不是这样,我得到这个结构:

A Object {
    ...
    ab Array ( ... )
    ac Array (
        AC Array (
            ...
            ace Array ( ... )
        )
        AC Array (
            ...
            ace Array ( ... )
        )
        ...
    )
    ad Array ( ... )
}

因此只有主模型转换为对象.

您是否了解如何将所有嵌套模型数组转换为假定结果的对象?

不,我在查询数据库时不能使用HYDRATE_RECORD.


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

复杂网络理论及其应用

复杂网络理论及其应用

汪小帆、李翔、陈关荣 / 清华大学出版社 / 2006 / 45.00元

国内首部复杂网络专著 【图书目录】 第1章 引论 1.1 引言 1.2 复杂网络研究简史 1.3 基本概念 1.4 本书内容简介 参考文献 第2章 网络拓扑基本模型及其性质 2.1 引言 2.2 规则网络 2.3 随机图 2.4 小世界网络模型 2.5 无标度网络模型 ......一起来看看 《复杂网络理论及其应用》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具