繁体   English   中英

更新后刷新身份验证用户数据

[英]Refresh Auth user data after update

我在$this->Auth->user('name')的标题中显示登录用户$this->Auth->user('name')

问题是,当我更新用户名时,如何在$this->Auth->user()刷新此值,因为在我仍然更新旧名之后?

除非您使用无状态身份验证,否则将存储数据并从会话中检索数据,因此您只需要在那里更新数据即可。

例如

$this->Auth->session->write($this->Auth->sessionKey . '.name', $newName);

或者在适用的情况下设置完整的修改后的用户数据(请注意,这将续订会话)

$this->Auth->setUser($updatedUserData);

另请参见API>控制器>组件> AuthComponent :: _ setUser()

在Appcontroller中

 public function initialize()
{
    ...
    $tableUser=TableRegistry::get("Users");
    $user=$tableUser->get($this->Auth->user('id'));

    $this->set(compact('user','...'));

...

在视图中,只需使用$ user ['name']即可获得名称。 用户中的任何更新都会影响到$ user。 使用数组$ user更新用户后,可以获取任何字段。 我坚持你的情况,但很早以前我就找到了解决方案。 希望这项工作。 让我知道它是否无效。 我在内存中写了出来,所以可能功能错误

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM