看起来需要两个步骤才能完成,
$u = $this->Auth->user(); $uid = $u['User']['id'];
在用户登录后,是否在某处设置了一个变量?(抱歉问了这个愚蠢的问题。)
9njqaruj1#
我认为你可以做$uid = $this->Auth->user('id');-检查api:http://api.cakephp.org/class/auth-component#method-AuthComponentuser
$uid = $this->Auth->user('id');
x3naxklr2#
在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,用途:(虽然使用Cake,但应遵守惯例)
$uid = $_SESSION['Auth']['User']['id'];
还有更多的方法,这只是几个...
dwbf0jvd3#
试试看:
$this->Auth->user('id')
h7appiyu4#
如果Auth类不可用,还可以从会话中获取用户详细信息。
$this->Session->read('Auth.User.id')
vdgimpew5#
蛋糕Php 2.x:
任何地方:
AuthComponent::user('id')
在控制器内部:
$this->Auth->user('id');
up9lanfz6#
即使这个问题被张贴的方式之前,目前的版本,我会回答如何在Cakephp v4.x,因为我只是需要它,并得到了一个艰难的时间找到这些信息,它可能是有用的其他人.
$identity = $this->request->getAttribute('authentication')->getIdentity();
现在,您有了一个类似于IdentityInterface ORM的对象,它从以您用来跟踪用户的DB表命名的对中返回值。
IdentityInterface
$identity['email'] $identity['full_name'] $identity['id'] // etc
7uhlpewt7#
$this->Session被弃用了,就像Simon上面说的那样,但是现在$this->request->session();也被弃用了,就目前而言,作为2021年8月和CakePhp 4,正确的答案是:
$this->Session
$this->request->session();
$this->request->getSession()->read('User.id');
dtcbnfnu8#
这可能是没有用的,但我有一个错误导致的$this->Auth->user();这个问题是用这个来解决的。我不确定问题的路线,但它出现在调用一个函数从一个模型在同一个行动,因为我使用$this->Auth->user();使用AuthComponent::user('id')解决了问题。
$this->Auth->user();
kuhbmx9i9#
不建议使用$this->Session用这样的东西
$session = $this->request->session(); $user_id = $session->read('Auth.User.id');
9条答案
按热度按时间9njqaruj1#
我认为你可以做
$uid = $this->Auth->user('id');
-检查api:http://api.cakephp.org/class/auth-component#method-AuthComponentuserx3naxklr2#
在CakePHP中,有几种方法可以从会话中获取用户id,下面是几个示例
若要取得控制器内的工作阶段使用者ID,请用途:
要获取视图中的会话用户ID,请用途:(不推荐,我会在控制器中设置此选项)
要获取模型中的会话用户ID,请用途:(不建议使用,但可作为解决方案)
我不建议使用上述方法从模型中获取会话用户ID,我会通过控制器传递它,用途:
您也可以通过纯php获取会话用户ID,用途:(虽然使用Cake,但应遵守惯例)
还有更多的方法,这只是几个...
dwbf0jvd3#
试试看:
h7appiyu4#
如果Auth类不可用,还可以从会话中获取用户详细信息。
vdgimpew5#
蛋糕Php 2.x:
任何地方:
在控制器内部:
up9lanfz6#
即使这个问题被张贴的方式之前,目前的版本,我会回答如何在Cakephp v4.x,因为我只是需要它,并得到了一个艰难的时间找到这些信息,它可能是有用的其他人.
现在,您有了一个类似于
IdentityInterface
ORM的对象,它从以您用来跟踪用户的DB表命名的对中返回值。7uhlpewt7#
$this->Session
被弃用了,就像Simon上面说的那样,但是现在$this->request->session();
也被弃用了,就目前而言,作为2021年8月和CakePhp 4,正确的答案是:dtcbnfnu8#
这可能是没有用的,但我有一个错误导致的
$this->Auth->user();
这个问题是用这个来解决的。我不确定问题的路线,但它出现在调用一个函数从一个模型在同一个行动,因为我使用$this->Auth->user();
使用AuthComponent::user('id')
解决了问题。kuhbmx9i9#
不建议使用
$this->Session
用这样的东西