2015-08-24 99 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