我有 2 个教义 2 实体: - 国家(id,名称) - 映射(id,objectType,internalId,externalId)
我需要使用以下条件在 Country 和 Mapping 之间建立关联: Country.id = Mapping.internalId AND Mapping.objectType = 'country'
我可以使用 YAML/XML 映射来实现这种关系吗?
我有 2 个教义 2 实体: - 国家(id,名称) - 映射(id,objectType,internalId,externalId)
我需要使用以下条件在 Country 和 Mapping 之间建立关联: Country.id = Mapping.internalId AND Mapping.objectType = 'country'
我可以使用 YAML/XML 映射来实现这种关系吗?
您可以通过继承映射来实现这一点;您的 Country 实体将是 Mapping 实体的子类。然后你可以像这样加载一个国家:
$em->getRepository('entity\name\of\Country')->findBy(array('internalId' => 1));
仔细调查您真正需要的对象。我发现继承映射在某些情况下非常有效。您需要仔细考虑您的域,看看是否是这种情况。
目前 Doctrine 2 不支持这一点。关联的外键必须映射到主键,您还不能在关联上实现过滤器。过滤器计划在 2.1 中实施。