当 propel 的 toArray() 函数返回引用对象或仅返回顶层时,规则是什么?



我似乎无法确切的经验法则,即使用toArray()时添加到数组中的内容,请失望,如果我要做这样的事情:

$sheep = SheepQuery::create()->find();
foreach ($sheep as $sheepii) {
  $sheepii->getShepherd();
}
return $sheep->toArray();

或它的某些变化,有时我似乎从绵羊表的列中获得了与牧羊人的子阵列的结果,但有时似乎不包括它,因此,我必须做一些事情,例如将值添加到新数组中时。

任何人都可以指出(链接解释)为什么会发生这种情况以及它背后的规则,因此我不会盲目猜测,如果有一种更好的方法可以做同样的事情,那么我就愿意接受建议。

通常,如果您想在toArray()内部有一个关系,则需要将其获取在初始查询中加入。

这将仅返回对象Sheep的信息:

$sheep = SheepQuery::create()
  ->find();
$sheep->toArray();

这将返回对象的信息Sheep 如果有一个:

,它们与Shepherd的关系
$sheep = SheepQuery::create()
  ->find()
  ->joinWith('Shepherd');
$sheep->toArray();

这是一篇很好的博客文章,以了解Propel 1.5:当您真正需要数组时。

最新更新