Cela ressemble à un processus en deux étapes pour obtenir cela,
$u = $this->Auth->user();
$uid = $u['User']['id'];
N'y a-t-il pas une variable définie quelque part une fois qu'un utilisateur est connecté? (Désolé pour la question stupide.)
Je pense que vous pouvez faire $uid = $this->Auth->user('id');
- consultez l’API: http://api.cakephp.org/class/auth-component#method-AuthComponentuser
Dans CakePHP, il existe plusieurs façons d'obtenir l'ID utilisateur de la session, en voici quelques exemples.
Pour obtenir l'ID utilisateur de la session dans le contrôleur, utilisez:
$uid = $this->Auth->User('user_id');
Pour obtenir l'ID utilisateur de la session dans une vue, utilisez: (Non recommandé, je le définirais dans le contrôleur)
$uid = $this->Session->read('Auth.User.id');
Pour obtenir l'ID utilisateur de la session dans un modèle, utilisez: (non recommandé, mais une solution)
$uid = CakeSession::read('Auth.User.id');
Je ne recommande pas ce qui précède d'obtenir l'ID utilisateur de la session à partir du modèle. Je le transmettrais via le contrôleur. Utilisez:
$this->Model->function($uid);
Vous pouvez également obtenir l'ID utilisateur de la session via php pur, utilisez: (Bien qu'avec Cake, vous devriez vous en tenir aux conventions)
$uid = $_SESSION['Auth']['User']['id'];
Et il y a plus d'approches, c'est juste quelques-unes ...
Essaye ça:
$this->Auth->user('id')
Vous pouvez également obtenir les détails de l'utilisateur à partir de la session si la classe Auth n'est pas disponible.
$this->Session->read('Auth.User.id')
CakePhp 2.x:
Nulle part:
AuthComponent::user('id')
À l'intérieur d'un contrôleur:
$this->Auth->user('id');
$this->Session
est obsolète
Utilisez quelque chose comme ça
$session = $this->request->session();
$user_id = $session->read('Auth.User.id');
Cela peut ne pas être utile, mais j'avais une erreur due à $this->Auth->user();
. Ce problème a été résolu en utilisant ceci à la place. Je ne suis pas sûr de la route du problème, mais il est apparu lors de l'appel d'une fonction depuis un modèle dans la même action que lorsque j'ai utilisé $this->Auth->user();
L'utilisation de AuthComponent::user('id')
a résolu le problème.