2012-01-29 33 views
0

事情是這樣的:Doctrine2中沒有類別別名嗎?

user: 
    targetEntity: User 
    inversedBy: posts 
    joinColumn: 
    name: user_id 
    referencedColumnName: id 
deleter: 
    targetEntity: User 
    joinColumn: 
    name: deleter_id 
    referencedColumnName: id 

上面我們有兩個關係類用戶,我在想,如果我們能這樣做targetEntity:缺失者爲用戶

+0

爲什麼你需要定義一個類別別名?直接引用用戶很好。 – Ocramius 2012-01-29 22:35:56

+0

@Ocramius,因爲當兩個實體之間有多個關係時,實體生成器會感到困惑 – DavidW 2012-01-30 05:34:29

+0

不要多次使用實體生成器,它沒有意義,只會帶來混亂,再加上它不是一個好的模式發展。實體生成僅用作快速入門的指南。之後,你應該單獨編寫你的代碼。映射應該遵循實體,而反過來是錯誤的。 – Ocramius 2012-01-30 16:45:14

回答

1

所以,你想刪除器是用戶?在這種情況下,你可能會去找Single Table Inheritance。你只需要添加一個鑑別器列。

用於建模角色的另一種常見方法是用戶在應用程序中可能具有user_type表或類似表。然後定義一個多對多的列出每個用戶具有哪些角色。通常情況下,這些都與特權相關聯,並且必須在所述角色之間建立層次關係,但這是一種總體概括。

+0

我很欣賞你的回覆。我的問題稍有不同,我只需要實體生成器(symfony2)來識別相關實體的名稱。對於「刪除」它創建了錯誤的setter/getters,我認爲別名會幫助解決這個問題,但它可能只是實體生成器中的一個錯誤。 – DavidW 2012-01-30 07:19:59

+0

嗯,我沒有在sf2中使用實體生成器或yml方法。我已經手動編寫了所有實體,並在我的項目中使用了註釋。也許可以通過郵件列表或IRC聯繫sf2人員,並讓我們知道您是否找到答案;對不起,我沒有幫助。 – quickshiftin 2012-01-30 14:33:32