这似乎是一个两步的过程来得到这个,CakePHP的 - 使用验证
$u = $this->Auth->user();
$uid = $u['User']['id'];
是不是有什么地方设置一旦用户一个变量登录时获得用户ID控制器? (对不起,愚蠢的问题。)
这似乎是一个两步的过程来得到这个,CakePHP的 - 使用验证
$u = $this->Auth->user();
$uid = $u['User']['id'];
是不是有什么地方设置一旦用户一个变量登录时获得用户ID控制器? (对不起,愚蠢的问题。)
我认为你可以做$uid = $this->Auth->user('id');
- 检查API:http://api.cakephp.org/class/auth-component#method-AuthComponentuser
您也可以从当会话获得用户的详细信息Auth类不适用于您。
$this->Session->read('Auth.User.id')
如果您没有在AppController级别注册AuthComponent,这会很有帮助 – 2012-11-27 19:23:26
在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,使用:操作(虽然使用蛋糕,你应与公约棒)
$uid = $_SESSION['Auth']['User']['id'];
而且有更多的途径中,这仅仅是几...
这是一个很好的答案,这应该是标记为接受的答案 – justinhartman 2013-10-11 16:05:03
+1,用于推荐从控制器传递到模型,而不是调用' CakeSession :: read('Auth.User.id');'在模型中。 – Fr0zenFyr 2015-09-11 10:40:18
CakePHP的2.x的:
任何地方:
AuthComponent::user('id')
控制器内部:
$this->Auth->user('id');
这可能是没用的,但是我的错误原因是$this->Auth->user();
这个问题是用这个来解决的。我不确定这个问题的路线,但是当它从一个模型中调用一个函数的时候,它就出现了,就像我使用$this->Auth->user();
使用AuthComponent::user('id')
解决了这个问题。
您可以在API中提供关键参数的事实......我想我会更频繁地观察一下。 – Owen 2010-07-01 16:08:49