我正在尝试检索当前登录用户的ID,以便将其保存到另一个表中。我一直在堆栈溢出,发现了一些方法,但似乎没有任何工作。
这会引发错误:在非对象上调用成员函数user()
$this->Auth->user('id');
返回空值:
$this->Session->read('User.id');
我玩了一下这个https://github.com/mcurry/cakephp_static_user但是由于某种原因,当我知道我已经实现了它时,它抱怨我正在调用未注册的函数。
我尝试过auth和session行的一些变体,但它们都返回null或抛出错误。任何人都可以对我可能遗失或做错的事情有所了解吗?
答案 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')