ユーザー情報の更新 – CakePHP2.x

[PR]

ユーザー情報更新に成功してもAuthのセッションデータが更新される訳ではないらしい。
当たり前と言えば当たり前だが。
なので、更新時には、手動で更新する必要があり。

更新成功後にこれで!

$options = array(
	'recursive' => -1,
	'conditions' => array('id' => $this->Auth->user('id'))
);
$user = $this->User->find('first', $options);
$this->Session->write('Auth', $user);

 今のAuthに入ってるユーザーIDから自分のユーザー情報を検索して、セッションに突っ込むという形。

他に

・ログアウトとログイン処理を裏で一気にやる。 
・セッションの情報を取り出して、変更したデータだけをそっと差し替えでセッションに戻す。

といった方法があるらしいが、自分はどっちもエラー出まくってダメでした!