Bonjour,

Je me tente un peu à Cakephp 2.0 depuis hier soir, tout se déroule bien. J'active bien le composant Auth, le configure correctement, tout semble fonctionner, je peux me connecter.

Cependant, j'aimerai que dans mon menu en haut, j'ai un menu différent selon mon état, si je suis connecté ou non. Suivant la documentation il faudrait utiliser une fonction static : AuthComponent::loggedIn(). Petite erreur lorsque je fais ça, il me dit que la méthode user() n'existe pas. Je vais donc voir la fonction, et en effet il y a quelque chose qui me choque.

public function loggedIn() {
    return $this->user() != array();
}

La méthode n'est pas définie en static mais en public, et à l'intérieur il y a un return avec un $this. Chose qu'il est totalement impossible de faire normalement avec un appel static. Je tente de corriger le "bug" en mettant la fonction définie telle quie suit :

static function loggedIn() {
    return self::user() != array();
}

Et tout semble marcher après.
Cependant je m'interroge à savoir si c'est la documentation qui n'est pas à jour ou s'il s'agit bel et bien d'un bug de Cakephp qui n'a pas encore été résolu. Vu qu'il est impossible d'appeler $this->Auth->...] dans une vue, je pencherai plutôt pour un bug.

Vu que dans le dernier tutoriel tu ne sembles pas utiliser cette fonction, est-ce que quelq'un a déjà eu ce problème, si non, comment t'y prendre ?

Merci d'avance !

2 réponses


Grafikart
Réponse acceptée

AuthComponent::user(); <= Ca c'est la fonction statique :)

slyvaan
Auteur

Yup quand on veut récupérer des informations liées à l'utilisateur, mais la doc nous dit de faire avec le loggedIn() pour chercher si un utilisateur est en ligne. Je crois que je vais finir par créer un helper pour tout ça, mais c'est dommage vu qu'ils avaient prévu quelque chose :/