Sto tentando di aggiungere un'entità utente a un'entità nell'evento preFlush. Fondamentalmente ogni entità ha un creato, che è un'entità Utente.Doctrine 2 preFlush Event Aggiungi classe associata
Ogni volta che ci provo, ricevo il seguente errore.
Notice: Undefined index: 0000000055f036b6000000009c9cc58f in /dir/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php line 870
Questa è la mia funzione preFlush.
public function preFlush(PreFlushEventArgs $args)
{
$em = $args->getEntityManager();
$uow = $em->getUnitOfWork();
$securityContext = $this->container->get('security.context');
if($securityContext->isGranted('IS_AUTHENTICATED_REMEMBERED')
|| $securityContext->isGranted('IS_AUTHENTICATED_FULLY'))
{
$user = $securityContext->getToken()->getUser();
}
if(!$user)
{
$user = $em->getRepository('NAB\EnterpriseBundle\Entity\User')->findOneByUsername($this->username);
}
foreach ($uow->getScheduledEntityInsertions() as $entity)
{
$entity->setCreatedBy($user);
$em->persist($user);
}
$meta = $em->getClassMetadata(get_class($entity));
$uow->recomputeSingleEntityChangeSet($meta, $entity);
$uow->computeChangeSets($meta, $entity);
}
Cosa sto sbagliando?
Questo 'preFlush()' è un evento del ciclo di vita sull'entità? O qual è il contesto più grande? Sono curioso perché devo fare qualcosa di simile, ma non so come legarlo tutto insieme. Non pensavo che il gestore dell'entità fosse disponibile nell'entità stessa? Non ho mai fatto un evento del ciclo di vita o un ascoltatore di eventi, quindi non so come dovrebbero interagire con il mio controller. –