inlclude habe ich eine Einheit BaseInformation
Lehre/Symfony: Wie EntityManager in EntityListener
/**
* @ORM\Entity
* @ORM\EntityListeners({"AppBundle\EntityListener\BaseInformationListener"})
* @ORM\Table(name="BaseInformation")
*/
class BaseInformation
{ ...
Deshalb habe ich eine EntityListener
/**
* Class BaseInformationListener
* @package AppBundle\EventListener
*/
class BaseInformationListener
{
/**
* @ORM\PreUpdate
*
* @param BaseInformation $baseInformation
* @param PreUpdateEventArgs $event
*/
public function preUpdateHandler(BaseInformation $baseInformation, PreUpdateEventArgs $event)
{
dump($baseInformation);
dump($event->getEntityChangeSet());
}
}
Ich brauche die ChangeSet
in die Datenbank zu speichern. Aber ich habe keinen Zugang zu einem EntityManager
. Ich kann einen Dienst daraus machen, aber der Listener wird automatisch über die Annotation in der Entität aufgerufen. Also, wie habe ich Zugriff auf die EnttiyManager
zum Speichern meiner ChangeSet
zum Beispiel?
welche Version der Doktrin verwenden Sie? – Matteo
Mit Blick auf das Offensichtliche vielleicht? $ event-> getEventManager(); http://www.doctrine-project.org/api/orm/2.5/class-Doctrine.ORM.Event.PreUpdateEventArgs.html Seien Sie jedoch vorsichtig, wenn Sie versuchen, den Entity Manager innerhalb dieser Art von Ereignissen zu verwenden, wird dies selten gut enden. – Cerad