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