4

我似乎无法确定使用时添加到数组中的确切经验法则toArray(),因为如果我要做这样的事情:

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

或它的一些变体,有时我似乎从羊表中的列它们与牧羊人的子数组中都得到了结果,但有时它似乎不包括它,所以我必须做一些事情,比如添加值当我循环时到一个新数组。

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

4

1 回答 1

3

通常,如果您希望关系位于内部,则toArray()需要获取它在初始查询中进行连接。

这将只返回对象的信息Sheep

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

这将返回对象的信息Sheep 及其Shepherd是否存在的关系:

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

这是一篇关于了解 Propel 1.5 的好博文:当你真正需要数组时

于 2012-11-09T14:30:26.463 回答