微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我对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.

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐