auth
セッションに保存されているユーザー情報を更新するにはどうすればよいですか?ログアウトせずに再度ログインします。
この関数でうまくいくと思いますが、ベストプラクティスですか?
function update($field, $value){
$this->Session->write($this->Auth->sessionKey . '.' . $field, $value);
}
auth
セッションに保存されているユーザー情報を更新するにはどうすればよいですか?ログアウトせずに再度ログインします。
この関数でうまくいくと思いますが、ベストプラクティスですか?
function update($field, $value){
$this->Session->write($this->Auth->sessionKey . '.' . $field, $value);
}
はい。
現在の情報配列を取得して変更し、を呼び出すこともできますが$this->Auth->login($newUserData);
、これによりセッションも更新されます(ただし、ユーザーの操作は必要ありません)。注:CakePHP2.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);
}
(関数のtigrangに感謝しlogin
ます)