我正在使用 Symfony1.4.1 并且使用 Doctrine 1.2.1(我认为)。
当我发现一个已经存在的功能时,我一直在尝试制作一个自己完成上述所有功能的功能。
在任何函数中尝试这个并查看结果:
$tmp=$this->toArray(TRUE);
var_dump($tmp);
$this->refreshRelated();
$tmp=$this->toArray();
var_dump($tmp);
$tmp=$this->toArray(TRUE);
var_dump($tmp);
exit();
我将尝试两种不同的方法:
A/ 将 $this->refreshRelated() 放入我所有模型对象的构造函数中。B/ 编写一个函数,该函数接受一个描述我想要填充的对象图的数组。调用函数refereshRelatedGraph($objectGraphArray)。使用正确的数组结构(在每个级别都有所有适当的关系名称),我可以控制哪些关系被填充,哪些不被填充。这样做的一种用途是仅填充子关系,而不是父关系。另一个是当 ERD/Schema/ObjectGraph 有一个由多个对象“拥有”的元素(多对多,我拥有的其他特殊情况)时,我可以控制关系的哪一侧得到 pre(非惰性) 加载。