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.


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

查看所有标签

猜你喜欢:

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

匠心体验

匠心体验

[法] 艾米丽·布歇 / 吴 博 / 人民邮电出版社 / 2016-11 / 69.00元

本书针对在智能手机和平板电脑的网站及应用程序设计,详细剖析了移动终端服务的用户体验设计要点,阐述了营造舒适的感官体验、甄选内容及功能、提高用户效率、优化等待时间、合理实施教学、情感设计等方面的设计诀窍,并通过大量实例,呈现当今移动终端服务设计中的亮点与雷区。一起来看看 《匠心体验》 这本书的介绍吧!

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

HTML 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试