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

sha*_*yyx 8 php doctrine doctrine-1.2

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

$model = new Doctrine\Model\Model;
$model->hydrate($model_array);
Run Code Online (Sandbox Code Playgroud)

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

如果我使用HYDRATE_RECORD它会很好但查询中的所有记录都将作为对象返回,这意味着更多的内存消耗.因此,我正在使用HYDRATE_ARRAY并按需将水泥混凝土阵列水合成物体.

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

A Array (
    ...
    ab Array ( ... )
    ac Array (
        AC Array (
            ...
            ace Array ( ... )
        )
        AC Array (
            ...
            ace Array ( ... )
        )
        ...
    )
    ad Array ( ... )
)
Run Code Online (Sandbox Code Playgroud)

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

A Object {
    ...
    ab Object { ... }
    ac Array (
        AC Object {
            ...
            ace Object { ... }
        }
        AC Object {
            ...
            ace Object { ... }
        }
        ...
    )
    ad Object { ... }
}
Run Code Online (Sandbox Code Playgroud)

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

A Object {
    ...
    ab Array ( ... )
    ac Array (
        AC Array (
            ...
            ace Array ( ... )
        )
        AC Array (
            ...
            ace Array ( ... )
        )
        ...
    )
    ad Array ( ... )
}
Run Code Online (Sandbox Code Playgroud)

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

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

jau*_*tte 2

如果偶然发现这个,请查看文档。

你有尝试过fromArray代替吗hydrate