加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 13:02:20 所属栏目:PHP教程 来源:网络整理
导读:我对Doctrine model hydrate()方法有一点问题.我使用这种方法从给定的数组中水合一个conrete模型的对象,如下所示: $model = new DoctrineModelModel;$model-hydrate($model_array); 使用嵌套的子模型对简单物体进行保湿时,一切都很完美.现在的问题是我需
我对Doctrine model hydrate()方法有一点问题.我使用这种方法从给定的数组中水合一个conrete模型的对象,如下所示:
$model = new DoctrineModelModel;
$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.

如果偶然发现 this,请查看文档.

你有没有试过来自阿雷而不是水合物?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读