- Je configurer un port d'écoute en classe où je vais mettre le ownerid colonne sur toute doctrine prePersist. Mes services.fichier yml ressemble à ceci ...
services:
my.listener:
class: App\SharedBundle\Listener\EntityListener
arguments: ["@security.context"]
tags:
- { name: doctrine.event_listener, event: prePersist }
et ma classe ressemble à ceci ...
use Doctrine\ORM\Event\LifecycleEventArgs;
use Symfony\Component\Security\Core\SecurityContextInterface;
class EntityListener
{
protected $securityContext;
public function __construct(SecurityContextInterface $securityContext)
{
$this->securityContext = $securityContext;
}
/**
*
* @param LifecycleEventArgs $args
*/
public function prePersist(LifecycleEventArgs $args)
{
$entity = $args->getEntity();
$entityManager = $args->getEntityManager();
$entity->setCreatedby();
}
}
Le résultat de ceci est l'erreur suivante.
ServiceCircularReferenceException: référence Circulaire détecté pour le service "de la doctrine.orm.default_entity_manager", chemin d'accès: "la doctrine.orm.default_entity_manager -> doctrine.dbal.default_connection -> mon.auditeur -> sécurité.contexte -> sécurité.l'authentification.manager -> fos_user.user_manager".
Mon hypothèse est que le contexte de sécurité a déjà été injecté quelque part dans la chaîne, mais je ne sais pas comment y accéder. Des idées?