創建一個新實體我試圖創建一個基於另一個創建的新實體。例如:我有一個關係基於創建另一個(postPersist)Doctrine2
Sale <-- 1:M --> Payment
現在,當我堅持一個Sale
,則必須創建初始Payment
但我不知道究竟是如何做到這一點。
我已經嘗試:
- 使用
@ORM\HasLifecycleCallbacks()
,@ORM\prePersist
或@ORM\postPersist
,但這些方法並沒有得到論據,我不能堅持實體Payment
。我甚至試圖將Sale
與Payment
(在prePersist方法$payment->setSale($this)
中)聯繫起來,希望EntityManager爲我持續Payment
。 info from here - 我試圖創建一個監聽器(guided from here),但它只是不工作,在任何時候聽者運行
- 做在我
SaleController::createAction()
,這種方式顯然是簡單的工作,但是這是什麼優雅也違背了我的應用程序的良好設計,此操作是業務邏輯的一部分,並在各個部分重複使用。
+1將工作委派給服務很簡單,並且保持乾爽。 – 2011-12-22 14:42:30