У меня есть 2 объекта: Страна (id, имя) и Mapping (id, объект, internalId, externalId). Country и Mapping не связаны ассоциациями (поскольку в Mapping есть строки не только для страны). Мне нужно получить внешний идентификатор для страны, используя следующие условия:
country.id = mapping.internalId
mapping.object = 'country'
Поэтому я планирую добавить функцию getExternalId() в Country.
function getExternalId() {
$em = Registry::getEntityManager();
$mapping = $em->getRepository('Mapping')->findOneBy(array(
'object' => 'country',
'internalId' => $this->getId()
));
return !empty($mapping) ? $mapping->getExternalId() : false;
}
Вопросы:
- Является ли хорошей практикой использование EntityManager внутри сущностей? Если нет, объясните, как получить внешний идентификатор в моем случае?
- Может быть, можно связать Country и Mapping с помощью файлов yaml?
Заранее спасибо!