如何更新auth
会话中存储的用户信息?没有注销并再次登录。
我认为这个功能会这样做..但它是最佳实践吗?
function update($field, $value){
$this->Session->write($this->Auth->sessionKey . '.' . $field, $value);
}
答案 0 :(得分:1)
是
您可以获取当前信息数组,修改它,然后调用$this->Auth->login($newUserData);
,但这也会更新会话(不需要用户交互)。注意:仅适用于CakePHP 2.0+。
答案 1 :(得分:0)
我已完成update
函数以获取一系列新值。用键(字段名称):
public function update($fields, $values = null) {
if (empty(parent::$_user) && !CakeSession::check(parent::$sessionKey)) {
return false;
}
if (!empty(parent::$_user)) {
$user = parent::$_user;
} else {
$user = CakeSession::read(parent::$sessionKey);
}
if (is_array($fields)) {
if (is_array($values)) {
$data = array_combine($fields, $values);
} else {
$data = $fields;
}
} else {
$data = array($fields => $values);
}
foreach ($data as $field => $value) {
if (isset($user[$field])) {
$user[$field] = $value;
}
}
return $this->login($user);
}
(感谢login
功能的tigrang