【问题标题】:Entity relation criteria in Doctrine2Doctrine2 中的实体关系标准
【发布时间】:2019-01-22 01:53:00
【问题描述】:

我有 AdminFiles 实体,它保存所有项目实体(新闻、页面、事件等)的文件。它的结构(删节)如下:

id          int(11) Auto Increment   
entity      varchar(255) // this holds the entity name, e.g. Page or News
entity_id   int(11) NULL // this holds the entity ID
filename    varchar(1000) // this holds the path to the file

我希望使用 $entity->getFiles() 之类的方式访问实体(页面、新闻等)中的文件。但是我在创建关系时遇到了麻烦,因为它不仅受 ID 的约束,还受实体名称的约束。有什么方法可以在 Doctrine2 实体中加入这个,还是我必须在服务中这样做?

【问题讨论】:

    标签: database doctrine-orm entity-relationship


    【解决方案1】:

    这可以通过 Doctrine 使用discriminator map 功能来处理。在您的情况下,将有多个实体继承自基本 AdminFiles 实体,每个实体都特定于单一类型的文件(例如 PageFilesNewsFiles 等)。您需要在entity 列和这些实体之间建立映射到@DiscriminatorMap 注释中,然后您将能够通过获取(或使用关联映射)代表某种特定类型文件的实体来获取一种特定类型的文件.

    通过使用此功能,您甚至可以拥有特定于某些特定类型文件的实体属性。

    【讨论】:

      猜你喜欢
      • 2011-12-29
      • 2011-06-08
      • 2014-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-11
      • 2013-05-22
      相关资源
      最近更新 更多