Il y a souvent des questions concernant la récupération de l’id utilisateur lorsque l’on utilise sfDoctrineGuardPlugin. En faite vous avez le choix entre deux possibilités. La première va lancer une requête dans la base de données, la seconde va récupérer l’id dans la session courante.
Exemple 1:
$this->user_id = $this->getUser()->getGuardUser()->getId();
Exemple 2:
$this->user_id = $this->getUser()->getAttribute( 'user_id', null, 'sfGuardSecurityUser');
Nous allons maintenant créer une nouvelle fonction dans notre classe myUser permettant d’accéder directement à notre id:
class myUser extends sfGuardSecurityUser { public function getId() { return $this->getAttribute('user_id', null, 'sfGuardSecurityUser'); } }
Après avoir créer cette nouvelle fonction, vous avez accès à votre id en exécutant le code suivant:
$this->user_id = $this->getUser()->getId();
Voilà pour la petite mise en place.