在toArray()中包含虚拟列使用PropelORM调用

时间:2012-04-11 19:49:01

标签: php orm propel

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

例如:

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

$aBook = $book->toArray();

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

1 个答案:

答案 0 :(得分: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);

参数列表并不漂亮,但应该有效。