如何分辨原则:映射:导入以创建自己的实体而不是连接表


How to tell doctrine:mapping:import to create own entity instead of junction-table

我有三个表:

  • 横幅(ID、网址、图像)
  • banner_on_position(横幅、位置、加载)
  • banner_positions(ID,姓名)

当我运行 doctrine:mapping:import 时,doctrine 只创建两个表。横幅和横幅位置。自动生成不会为banner_on_position表创建自己的实体。

有没有办法使用查询生成器访问加载属性?或如何告诉教义创造自己的实体?

到目前为止,我对自动生成实体没有任何问题,而且非常舒适。我希望我不必手动创建编码。

在这种情况下,您必须手动创建代码。如果您的many_to_many表有一些额外的属性,那么您需要使用该技巧:双方都需要使用oneToMany关系进行banner_on_positionbanner_on_position需要对两个表都manyToOne

检查我们在类似情况下是如何做到的(ContainerWidget 有指向容器、小部件和自定义参数 - 位置的链接)。 https://github.com/superdesk/web-publisher/blob/master/src/SWP/Bundle/TemplateEngineBundle/Resources/config/doctrine/ContainerWidget.orm.yml

这里也是关于stackoverflow的非常好的问答: 原则2:在参考表中使用额外列处理多对多的最佳方法