[英]postPersist action - persist another entity
[EDITS]
ProjectListener.php
文件。 [設置]
Projet
實體 [問題]
每次Projet
實體持續存在時,都應跟隨一些子實體。
我目前有一個ProjetListener
類,該類處理prePersist()
和preUpdate()
以及postPersist()
事件。
的appbundle /監聽器/ ProjetListener.php
class ProjetListener {
private $tokenStorage;
public function __construct(TokenStorage $tokenStorage) {
$this->tokenStorage=$tokenStorage;
}
public function prePersist(Projet $projet, LifecycleEventArgs $args) {
$projet->setUtilisateur($this->tokenStorage->getToken()->getUser())
->setCreation(new \DateTime())
->setModification(new \DateTime())
->setSupprime(false);
}
public function preUpdate(Projet $projet, PreUpdateEventArgs $args) {
$projet->setModification(new \DateTime());
}
public function postPersist(Projet $projet, LifecycleEventArgs $args) {
$tremie=new Tremie();
$tremie->setPosition(false)
->setForme(0)
->setTra(2000)
->setTr1(2000)
->setTr2(2000)
->setTre3(2000)
->setDecalTra(0)
->setDebordTr1(0)
->setDebordTr2(0)
->setReculMax(3500)
->setProjet($projet);
$em=$args->getEntityManager();
$em->persist($tremie);
}
}
我的Projet
實體永久存在后,我想保留一個Tremie
實體,並將Projet
設置為它的父實體。
到目前為止, postPersist()
事件不會持久Tremie
實體。
Symfony成功創建了Projet
實體,但此后沒有創建Tremie
實體。
沒有錯誤返回。
什么應該添加/編輯堅持Tremie
盡快Projet
是堅持,並設置Projet
為他的父母?
您可以使用訪問實體管理器
$entityManager = $args->getEntityManager();
您可能可以做:(我從未嘗試過)
public function prePersist(Projet $projet, LifecycleEventArgs $args) {
$projet->setUtilisateur($this->tokenStorage->getToken()->getUser())
->setCreation(new \DateTime())
->setModification(new \DateTime())
->setSupprime(false);
$tremie->setPosition(false)
->setForme(0)
->setTra(2000)
->setTr1(2000)
->setTr2(2000)
->setTre3(2000)
->setDecalTra(0)
->setDebordTr1(0)
->setDebordTr2(0)
->setReculMax(3500)
->setProjet($project);
$args->getEntityManager()->persist($tremie);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.