我的电话如下:
$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;
}
但是,有时,实体包含一些仅作为学说关联映射存在的信息。该信息最终没有设置为$值。有没有办法循环遍历$ foo中设置的值而不通过我的getEntityColumnValues()函数获取类元数据?也许有一种方法可以增强我的功能来获得这些映射?感谢。
答案 0 :(得分:1)
你是正确的方式。 $em->getClassMetadata(get_class($entity))
为您提供了ClassMetadata以及您可能需要的所有getter(例如getAssociationMappings
)。只需要look at them并随意体验。