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在查询数据库时无法使用.