这似乎是一个两步过程,
$u = $this->Auth->user();
$uid = $u['User']['id'];
一旦用户登录,是否存在某个变量集? (抱歉这个愚蠢的问题。)
答案 0 :(得分:31)
我认为你可以$uid = $this->Auth->user('id');
- 检查api:http://api.cakephp.org/class/auth-component#method-AuthComponentuser
答案 1 :(得分:16)
在CakePHP中,有几种方法可以从会话中获取用户ID,这里有几个例子
要获取控制器中的会话用户ID,请使用:
$uid = $this->Auth->User('user_id');
要在视图中获取会话用户ID,请使用:(不推荐,我会在控制器中设置此项)
$uid = $this->Session->read('Auth.User.id');
要获取模型中的会话用户ID,请使用:(不推荐,但解决方案)
$uid = CakeSession::read('Auth.User.id');
我不建议以上方式从模型中获取会话用户ID,我会通过控制器传递它,使用:
$this->Model->function($uid);
你也可以通过纯php获取会话用户ID,使用:( Althought using Cake你应该坚持约定)
$uid = $_SESSION['Auth']['User']['id'];
还有更多的方法,这只是一些......
答案 2 :(得分:10)
试试这个:
$this->Auth->user('id')
答案 3 :(得分:5)
如果您无法使用Auth课程,也可以从会话中获取用户详细信息。
$this->Session->read('Auth.User.id')
答案 4 :(得分:5)
CakePhp 2.x:
Anywhere的:
AuthComponent::user('id')
在控制器内:
$this->Auth->user('id');
答案 5 :(得分:0)
这可能没有用,但是$this->Auth->user();
我遇到了错误原因这个问题已经解决了。我不确定问题的路径,但是在使用与我使用$this->Auth->user();
相同的操作中从模型调用函数时出现了
使用AuthComponent::user('id')
解决了问题。
答案 6 :(得分:0)
$this->Session
已弃用
使用类似这样的东西
$session = $this->request->session();
$user_id = $session->read('Auth.User.id');