過去曾問過這個問題的迭代過程,但這提出了獨特的挑戰,因爲它將一些較大問題中的一些問題組合在一起。使用主鍵與外鍵共享的一對一關係中的用戶對象
我有一個實體(用戶),用作我的應用程序中的用戶類,然後我有另一個實體(UserExtra),與用戶實體一對一的關係,UserExtra的id與用戶。外鍵與主鍵相同。
當用戶對象被加載時(比如通過$this->getUser()
或{{ app.user }}
,UserExtra數據也通過連接加載。具有兩個實體的整個點是,所以我不必一次加載所有數據。
我甚至試着爲用戶定義一個自定義UserLoaderInterface/UserProviderInterface存儲庫,確保refreshUser和loadUserByUsername只會加載用戶數據(我想讓UserExtra數據坐在代理中,除非我明確需要它),但當Doctrine去保存對象時,它會發出額外的查詢來加載UserExtra數據,從而跳過代理狀態。
Is有沒有辦法呢?
到目前爲止,我設法使它由錯誤標記的關係工作作爲多對一(額外的許多)並修改getExtra和setExtra,以便它們可以訪問 - > extra [0]。 這當然不好。 –