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 に設定されていません。私が持っている getEntityColumnValues() 関数を介してクラス メタデータを取得せずに、$foo に設定された値をループする方法はありますか? これらのマッピングを取得するために機能を強化する方法はありますか? ありがとう。

4

1 に答える 1

1

あなたは正しい道を進んでいます。$em->getClassMetadata(get_class($entity))ClassMetadata に必要なすべてのゲッター (例: getAssociationMappings) を提供します。それらを見て、気軽に体験してください。

于 2013-05-21T16:33:21.947 に答える