J'ai 2 entités : Pays (id, nom) et Mapping (id, objet, internalId, externalId). Le Pays et le Mapping ne sont pas connectés par des associations (parce que le Mapping a des lignes pas seulement pour le pays). J'ai besoin d'obtenir l'id externe pour le pays en utilisant les conditions suivantes :
country.id = mapping.internalId
mapping.object = 'country'
Je prévois donc d'ajouter la fonction getExternalId() dans Country
function getExternalId() {
$em = Registry::getEntityManager();
$mapping = $em->getRepository('Mapping')->findOneBy(array(
'object' => 'country',
'internalId' => $this->getId()
));
return !empty($mapping) ? $mapping->getExternalId() : false;
}
Questions :
- Est-ce une bonne pratique d'utiliser EntityManager à l'intérieur des entités ? Si non, veuillez expliquer comment obtenir un identifiant externe dans mon cas ?
- Peut-être est-il possible d'associer Pays et Cartographie en utilisant des fichiers yaml ?
Merci d'avance !