我有 2 个实体:国家(id、名称)和映射(id、对象、internalId、externalId)。Country 和 Mapping 没有关联(因为 Mapping 不仅有国家的行)。我需要使用以下条件获取国家/地区的外部 ID:
country.id = mapping.internalId
mapping.object = 'country'
所以我计划在 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 是一种好习惯吗?如果不是,请解释在我的情况下如何获取外部 ID?
- 也许可以使用 yaml 文件将 Country 和 Mapping 关联起来?
提前致谢!