Когда я пытаюсь добиться следующего:
- Пользователь меняет электронную почту
- Пользователь получает письмо с подтверждением
- Пользователь активирует измененную электронную почту.
То, как я это делаю, таково:
<?php
echo $form->create('User', array('action' => 'changeEmail'));
echo $form->input('email');
echo $form->end('Change');
?>
Тогда мой контроллер
function changeEmail(){
if(!empty($this->data)){
$user = $this->Auth->user();
$user['User']['email'] = $this->data['User']['email'];
$activationcode = _generateActivationCode();
$user['User']['activationcode'] = $activationcode;
$user['User']['isactive'] = false;
if($this->User->save($user)){
//sendmail
}
}
Затем я получаю представление, где они могут активировать электронную почту, и я делаюследующее:
function activate(){
$user = $this->Auth->user();
//Now this variable doesn't reflect the changes we've just saved (for example the activationCode)
}
Это предполагаемое поведение или я здесь что-то не так делаю.