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

时间:2013-12-11 05:08:45

标签: cakephp userid

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

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

$this->Auth->user('id');

返回空值:

$this->Session->read('User.id');

我玩了一下这个https://github.com/mcurry/cakephp_static_user但是由于某种原因,当我知道我已经实现了它时,它抱怨我正在调用未注册的函数。

我尝试过auth和session行的一些变体,但它们都返回null或抛出错误。任何人都可以对我可能遗失或做错的事情有所了解吗?

2 个答案:

答案 0 :(得分:2)

试试这个:

$loggedInUser = AuthComponent::user();  

这给了整个用户数组,如果你刚好在id之后那么你需要这个:

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

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

答案 1 :(得分:1)

好像你没有使用CakePHP的内置Auth组件。 你的代码说:

$components = array('DebugKit.Toolbar', 'Session', 'DataTable', 'RequestHandler', 'Usermgmt.UserAuth')

包含CakePHP的Auth组件:

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