Bonjour, j'ai suivi ce tuto https://gist.github.com/danvbe/4476697 pour pouvoir gérer à partir de FOSUserBundle et HWI la connexion automatique via facebook. J'ai réussi et cela marche très bien. Par contre lors de l'enregistrement d'un nouvel utilisateur via facebook, j'ai voulu modifier la fonction loadUserByOAuthUserResponse du fichier UserProvider.php pour créer en même temps une nouvelle ligne dans une table que j'ai appelé membre. En faisant des recherches sur les erreurs que j'obtiens j'ai bien compris que qu'on ne pouvait pas faire appel à Doctrine dans un service en faisant un simple via $em = $this->container->get('doctrine')->getEntityManager();

Aussi, j'ai fais plusieurs recherches et tenté plusieurs solutions dont celle-ci donnée sur ce forum mais j'obtients toujours cette erreur de Call to e member Function...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Error: Call to a member function getEntityManager() on a non-object in D:\www\myapp\src\MyAPp\UserBundle\OAuth\UserProvider.php line 114
Service.yml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
services:
    my_user_provider:
        class: "%my_user_provider.class%"
        arguments: [@fos_user.user_manager,{facebook: facebook_id, google: google_id} ]
        arguments: [@doctrine.orm.entity_manager]
UserProvider.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use Symfony\Bundle\DoctrineBundle\Registry;
use Doctrine\ORM\EntityRepository;

class UserProvider extends FOSUBUserProvider
{
        protected $em;
        public function _construct(EntityManager $em)
        {      
             $em = $this->em;
        }

        /**
        * {@inheritdoc}
        */
        public function loadUserByOAuthUserResponse(UserResponseInterface $response){
           
            [...]
            $user_Id = $user->getId();
            $membre = $em->getEntityManager()->getRepository('MyAppMembreBundle:Membre')->findOneBy(array('id_user' => $user_Id));
            [...]
        }
}
Merci pour vos explications qui me permettrons de comprendre où ça bloque.