iwj*_*145 4 session cakephp cakephp-2.3
我想知道在用户更新信息后如何重新加载数组(Auth.User).
目前这种情况不会发生,直到用户退出然后再加载到加载阵列(Auth.User)时.
到目前为止,我已经尝试了一些解决方案,如.
我也尝试过添加
$user = $this->User->field('name', array('User.id' => $this->Session->read('Auth.User.id')));
$this->Session->write('Auth.User', $user);
到app控制器中.
但没有一个成功.
谢谢
你就在那里.请记住,返回的数组$user
包含"用户"键,例如:
array(
'User' => array(
'id' => 1
)
)
Run Code Online (Sandbox Code Playgroud)
因此将其保存到会话下Auth.User
实际上会保存会话数组,如下所示:
array(
'Auth' => array(
'User' => array(
'User' => array(
'id' => 1
)
)
)
)
Run Code Online (Sandbox Code Playgroud)
而是将其保存到Auth键中,您可以像往常一样继续访问它:
$user = $this->User->field('name', array(
'User.id' => $this->Session->read('Auth.User.id')
));
$this->Session->write('Auth', $user);
Run Code Online (Sandbox Code Playgroud)
现在会话密钥已被清除,用户可以更轻松,更快速地重新登录,正如标记在评论中所说:use $this->Auth->login()
.
$user = $this->User->field('name', array(
'User.id' => $this->Session->read('Auth.User.id')
));
$this->Auth->login($user);
Run Code Online (Sandbox Code Playgroud)