2015-08-24 31 views
0

我在我的数据库(MySQL)中有一个表,它将几个酒店与类别关联起来。由于酒店可以属于多个类别,因此它是链接酒店和类别表的部分表格,反之亦然。在同一张表中,我有一个附加信息字段(,维数为1的整数)。实体中的多对多实体(symfony2)

当使用Symfony控制台生成实体时,酒店和类别的类包含另一个实体的对象数组。也就是说,从酒店可以访问它所属的类别,并从类别访问所有拥有它的酒店。

问题是不是我如何访问附加字段来显示附加信息,因为没有视图或调用的中间实体。

如果有人能帮助我,我会非常感激。

祝你好运,谢谢。

+0

如果您提供了一些代码,以显示您希望访问数据的情况,可能会有帮助。 – Micha

回答

4

你必须从

Hotel --> ManyToMany <-- Category 

分裂关系变成

Hotel --> OneToMany <-- HotelCategory --> ManyToOne <-- Category 

与属性的关系,确实是一个新的实体。

进入HotelCategory现在您可以添加该属性。

请注意,当您创建新表单时,您需要包含HotelCategory,因此可能需要额外的工作。

+0

谢谢,但我不想改变数据库的结构。我认为即使是一个有许多额外领域的普通人,也必须能够被这个领域的实体所访问。 我发现了下面的内容,http://doctrine-orm.readthedocs.org/en/latest/tutorials/composite-primary-keys.html#use-case-3-join-table-with-metadata,但我必须将公司与ORM XML连接起来工作,但不能。 – JSGarcia

+1

@JSGarcia:没办法,它不是你想要做或不想做的,是唯一可行的方法https://groups.google.com/forum/#!topic/doctrine-user/0dh8lgUudvc – DonCallisto

+0

我读到ORM和一个正确设置的实体,直接指出多对一的关系,而不是多对多,你可以得到。 我没有太多的想法,但我不认为任何N:M关系可能包含额外信息都不足为奇。 无论如何,我离开了执行与本地SQL咨询直接到数据库的步骤,当我有时间,我会再次与这个争取让正确。 问候:) – JSGarcia