0

在从带有来自连接的虚拟列的查询中检索到的 PropelORM 对象中,有没有办法/方法在 toArray() 调用中包含虚拟列?

例如:

$book = BookQuery::create()
  ->join('Book.Author')
  ->with('Author')
  ->where('Author.Name = ?', 'Jane Austen')
  ->findOne();

$aBook = $book->toArray();

在上面的代码中,我希望在 toArray() 调用中生成的数组也包含来自 Authors 表的字段,而不仅仅是 Books 表。

4

1 回答 1

2

如果查看toArray()方法定义,您会发现它接受$includeForeignObjects参数。我认为这或多或少是您正在寻找的。

$book = BookQuery::create()
  ->join('Book.Author')
  ->with('Author')
  ->where('Author.Name = ?', 'Jane Austen')
  ->findOne();

$aBook = $book->toArray($keyType = BasePeer::TYPE_PHPNAME, $includeLazyLoadColumns = true, $alreadyDumpedObjects = array(), $includeForeignObjects = true);

参数列表并不漂亮,但它应该可以工作。

于 2012-04-12T21:31:02.987 回答