我在我的一个可移植包中使用MappedSuperClass设置了一个实体。我将它扩展到每个独立项目/网站的实体,并在主项目包中实现附加属性。我正在使用接口和ResolveTargetEntities来使用接口关联实体。这部分至今工作完美无瑕。Doctrine DQL与接口
问题出现在我的DQL查询中,这些查询需要解决特定实现的实体类(扩展映射超类的实体类)。如果我使用接口或映射的超类,我会得到Symfony错误。但我不想使用我的超类名称实现,因为这意味着我必须更改每个项目的可移植包的存储库代码,这是不可接受的。
其中一个想法是从存储库中的config获取orm映射,并在那里注入正确的类。但我找不到从配置文件中提取该信息的方式。
另一方面,更好的方法是创建某种类型的监听器,它将为我替换真实的界面。
所以我的问题:有谁知道这是否是通常的行为,DQL不能解决?有没有人有任何想法我将如何实现代码来实现自己的决议?
任何信息表示赞赏。
感谢您的回复。这并不是说我无法访问我的存储库,我已经在做你正在提出的建议。问题是,我有一个DQL查询从另一个实体获取数据,而不是Repository引用的数据。所以在我的DQL中,我有这样的东西:'SELECT gl,g,c,cl,m,ml FROM Path \ Which \ Should \ Be \ an \ Interface gl'。接口应该被映射到正确的实体。这甚至有可能吗? –