【问题标题】:Symfony: how to relation a Entity field to several EntitiesSymfony:如何将实体字段与多个实体相关联
【发布时间】:2017-05-19 11:06:34
【问题描述】:

我的数据库图对应:

每个表都有自己的 Symfony 实体类。我的应用视图显示:

我需要将折扣实体与多个实体相关联:运动鞋、T 恤、裤子甚至更多实体。

第一个解决方案:

在折扣和其他之间创建 N:N 表。问题是我可能需要创建新表来应用折扣,然后我必须创建更多 N:N 表。所以我放弃了这个解决方案。

第二种解决方案:

使用to_entityto_entity_id 字段创建一个generic 表,让我将折扣映射到to_entity 实体目标(运动鞋、T 恤、裤子或其他):

如何在 Symfony 中实现第二个解决方案?还是有其他可能的解决方案?

谢谢。

【问题讨论】:

标签: php symfony doctrine-orm doctrine


【解决方案1】:

Doctrine 的多态性一点也不简单。

  1. 尝试通过mapped superclasses and/or inheritance解决。您的第一个解决方案可以通过使用单表继承来简化。您应该为每个新的“可折扣”实体更改鉴别器映射。
  2. 调查Dynamic mappingloadClassMetadata 事件。您可以为每个实现自定义接口(即 DiscountableInterface)的实体创建 OneToMany 关系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多