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

前端之家收集整理的这篇文章主要介绍了php – Doctrine 1.2 hydrate方法 – 数组到模型对象前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我对Doctrine model hydrate()方法有一点问题.我使用这种方法从给定的数组中水合一个conrete模型的对象,如下所示:
  1. $model = new Doctrine\Model\Model;
  2. $model->hydrate($model_array);

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

如果我使用HYDRATE_RECORD就可以了,但查询中的所有记录都将作为对象返回,这意味着更多的内存消耗.因此,我正在使用HYDRATE_ARRAY并按需将具体数组水合成一个对象.

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

  1. A Array (
  2. ...
  3. ab Array ( ... )
  4. ac Array (
  5. AC Array (
  6. ...
  7. ace Array ( ... )
  8. )
  9. AC Array (
  10. ...
  11. ace Array ( ... )
  12. )
  13. ...
  14. )
  15. ad Array ( ... )
  16. )

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

  1. A Object {
  2. ...
  3. ab Object { ... }
  4. ac Array (
  5. AC Object {
  6. ...
  7. ace Object { ... }
  8. }
  9. AC Object {
  10. ...
  11. ace Object { ... }
  12. }
  13. ...
  14. )
  15. ad Object { ... }
  16. }

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

  1. A Object {
  2. ...
  3. ab Array ( ... )
  4. ac Array (
  5. AC Array (
  6. ...
  7. ace Array ( ... )
  8. )
  9. AC Array (
  10. ...
  11. ace Array ( ... )
  12. )
  13. ...
  14. )
  15. ad Array ( ... )
  16. }

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

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

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

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

猜你在找的PHP相关文章