Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ecouteur d'évènement

    16 août 2018 à 20:32:35

    Bonjour

    je veux enregistrer  apres incristion du membre les info du membre dans une table de parrainage. j'ai donc ecrire un listener. Le probleme c'est rien ne ce passe. j'e viens demander de l'aide voici mes codes

    <?php
    /**
     * Created by PhpStorm.
     * User: BAKARY236
     * Date: 16/08/2018
     * Time: 11:14
     */
    
    namespace CmcBundle\Services;
    
    use CmcBundle\Entity\VisiteurInscrit;
    use Symfony\Component\DependencyInjection\ContainerInterface;
    
    class AjouterVisiteurInscrit
    {
        public function __construct(ContainerInterface $container, $session)
        {
            $this->entityManager = $container->get('doctrine.orm.entity_manager');
            $this->session = $session;
    
        }
    
        public function ajouterMembreParrainer()
        {
            $email = $this->session->get('email');
            $visiteur = $this->session->get('membreinscrit');
            $emailok = $this->entityManager->getRepository('CmcBundle:User')->findBy(array('email' => $email));
    
            if (!$emailok)
            {
                return;
            }
            if ($emailok)
            {
                $parrain = new VisiteurInscrit();
                $parrain->setVisiteur($visiteur);
                $parrain->setDateInscription(new \DateTime('%d'));
                $this->entityManager->persit($parrain);
                $this->entityManager->flush();
            }
        }
    
    }

    <?php
    
    
    namespace CmcBundle\ServicesListener;
    
    
    use Symfony\Component\DependencyInjection\ContainerInterface;
    
    class AjouterVisiteurInscritListener
    {
        public function __construct(ContainerInterface $container)
        {
            $this->router = $container->get('router');
            $this->membreInscrit = $container->get('cmc.services.ajouter_visiteur_inscrit');
        }
    
        public  function onKernelRequest()
        {
            $route = $this->router;
            if ($route == 'check-email')
            {
               $this->membreInscrit->ajouterMembreParrainer();
            }
        }
    }
    cmc.services.ajouter_visiteur_inscrit:
            class: CmcBundle\Services\AjouterVisiteurInscrit
            arguments: [@service_container, @session]
    
        cmc.services.ajouter_visiteur_inscrit_listener:
            class: CmcBundle\ServicesListener\AjouterVisiteurInscritListener
            arguments: [@service_container]
            tags:
                - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
     

    -
    Edité par bakouly 16 août 2018 à 20:36:33

    • Partager sur Facebook
    • Partager sur Twitter
      16 août 2018 à 20:38:12

      Bonjour,

      Je ne vois pas où il y a écoute d'un événement Symfony.

      Il faut déclarer un service avec un un événement styme post_update ou pre_update.

      A+

      • Partager sur Facebook
      • Partager sur Twitter

      Ecouteur d'évènement

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown