À l'aide de l'EntityManager à l'intérieur de la Doctrine 2.0 entités

J'ai 2 entités: Pays (id, nom) et de la Cartographie (id, objet, internalId, externalId).
Pays et de Cartographie ne sont pas connectés avec des associations (à cause de la Cartographie en ligne, non seulement pour le pays). J'ai besoin d'obtenir id externe pour les pays utilisant les conditions suivantes:

  • country.id = mapping.internalId
  • mapping.object = 'country'

Donc j'ai l'intention d'ajouter une fonction getExternalId() dans un Pays

function getExternalId() {
    $em = Registry::getEntityManager();

    $mapping = $em->getRepository('Mapping')->findOneBy(array(
        'object'     => 'country',
        'internalId' => $this->getId()
    ));

    return !empty($mapping) ? $mapping->getExternalId() : false;
}

Questions:

  1. Il est de bonne pratique d'utiliser l'EntityManager à l'intérieur des entités? Si non, veuillez expliquer comment faire pour obtenir l'id externe dans mon cas?
  2. Peut-être qu'il est possible d'associer des Pays et de la Cartographie à l'aide de fichiers yaml?

Merci d'avance!

InformationsquelleAutor Torchello | 2010-11-05