0

我有一个如下所示的呼叫:

$foo = $em->getRepository('MyBundle:Bar')->find($id);

我希望能够遍历返回到 $foo 的所有列/值对。我发现在大多数情况下,以下调用可以让我得到我想要的信息:

public function getEntityColumnValues($entity, $em){
  $cols = $em->getClassMetadata(get_class($entity))->getColumnNames();
  $values = array();
  foreach($cols as $col){
    $getter = 'get' . $this->underscoreToCamelCase($col, true);
    $values[$col] = $entity->$getter();
  }
  return $values;
}

然而,有时实体包含一些仅作为学说关联映射存在的信息。该信息最终没有设置在 $values 中。有没有一种方法可以遍历 $foo 中设置的值,而无需通过我拥有的 getEntityColumnValues() 函数获取类元数据?也许有一种方法可以增强我的功能以获取这些映射?谢谢。

4

1 回答 1

1

你走对了。$em->getClassMetadata(get_class($entity))为您提供 ClassMetadata 以及getAssociationMappings您可能需要的所有 getter(例如)。只需看看它们并随意体验。

于 2013-05-21T16:33:21.947 回答