我有一個對象$ user,它與$ establishment有一對多的關係。我可以使用:在Doctrine 2中設置非永久關係
$user->getEstablishments();
用戶可以選擇一個穩定工作。我有這樣的方法,我在控制器中稱:我在查看通話
$user->setCurrentEstablishment($establishment);
這一個:
$establishment = $user->getCurrentEstablishment();
我希望能夠調用:
$user->setCurrentEstablishmentBy Slug($establishment_slug);
其中slug是一個字符串,並讓用戶對象查找建立。
學說不鼓勵訪問實體對象內的實體管理器的做法,但我認爲在控制器中使用它更糟糕。
我懷疑是否存在一些特殊的Doctrine註解來處理像這樣的非持久性關係,或者應該使用通過服務爲服務實體管理器提供服務以外的其他方法。從模型中引用其他實體的一種簡單方法。
¿是否有? ¿我怎麼能這樣做?
爲什麼你認爲使用實體管理器的控制器是壞? – Cerad
您應該在控制器或服務中(例如UserService - 您需要創建它)。 –
這不是在控制器中使用實體管理器是不好的。這是該實體應該給你一些有關自己的相關數據,而無需你自己收集在控制器中。就像它給你通常的持久關係一樣,它也應該爲你提供運行時間,非持久性關係,就像在我的例子中,通過slug來記錄相關記錄。只是我的觀點。 –