如何在cakephp中检索当前用户id

如何在cakephp中检索当前用户id,cakephp,userid,Cakephp,Userid,我正在尝试检索当前登录用户的id,以便将其保存到另一个表中。我在堆栈溢出方面做了一些工作,找到了一些方法,但似乎没有任何效果 这会引发错误:对非对象调用成员函数user() $this->Auth->user('id'); 这将返回一个空值: $this->Session->read('User.id'); 我对此做了一点尝试,但出于某种原因,它抱怨我在调用未注册的函数,而我知道我已经实现了它们 我尝试了auth和session行的一些变体,但它们都返回null或抛出

我正在尝试检索当前登录用户的id,以便将其保存到另一个表中。我在堆栈溢出方面做了一些工作,找到了一些方法,但似乎没有任何效果

这会引发错误:对非对象调用成员函数user()

$this->Auth->user('id');
这将返回一个空值:

$this->Session->read('User.id');
我对此做了一点尝试,但出于某种原因,它抱怨我在调用未注册的函数,而我知道我已经实现了它们

我尝试了auth和session行的一些变体,但它们都返回null或抛出错误。有人能告诉我我可能遗漏了什么或做错了什么吗?

试试这个:

$loggedInUser = AuthComponent::user();  
这将提供整个用户阵列,如果您刚好在id之后,则需要:

$userId = $loggedInUser['User']['id'];

这就是我在需要的地方使用的东西,它对我来说很好。

您似乎没有使用CakePHP的内置Auth组件。 你的密码是:

$components = array('DebugKit.Toolbar', 'Session', 'DataTable', 'RequestHandler', 'Usermgmt.UserAuth')
要包含CakePHP的Auth组件,请执行以下操作:

$components = array('...', 'Auth')

确保已在控制器中添加会话和身份验证组件如何确保已将它们添加到控制器?我的appcontroller中有一行代码:public$components=array('DebugKit.Toolbar','Session','DataTable','RequestHandler','Usermgmt.UserAuth');您还可以将键作为参数传递,然后该方法将返回该特定字段(如果存在)。