cakephp 2.3 - 更改密码方法错误

i have this method for user password changing in the controller (UsersController.php):

public function changepass() {
    if($this->User->exists()) {         
        $new_pass = $this->request->data['User']['newpass'];
        $repeat_pass = $this->request->data['User']['newrepeat'];
            if($new_pass == $repeat_pass) {
                $this->User->saveField('password',$new_pass);
                $this->Session->flash(__('Updated successfully'));
                $this->redirect(array('controller' => 'users','action' => 'dashboard'));
            } else {
                $this->Session->flash(__('Passwords did not match'));
                $this->redirect(array('controller' => 'users','action' => 'changepass'));
            }

    }
}

and this view (changepass.ctp):

<?php 
    echo $this->Form->create();

    echo $this->Form->input('newpass',array('type'=>'text','label'=>array('text'=>'Enter new password'))); 

    echo $this->Form->input('newrepeat',array('type'=>'text','label'=>array('text'=>'Confirm new password'))); 
?>

    <button type="submit">Save</button>

<?php echo $this->Form->end(); ?>

But this does not seem to work,and i cannot actually understand why. Can you help me? Do you see what's wrong here?

Thank you in advance guys!

Try setting the user id before checking if the user exists

Assuming you are trying to change the password of the currently logged in user and assuming your user id column is named user_id

$this->User->id = $this->Auth->user('user_id');

It would be easier if you could be a little specific on why it does not work (does it show the password did not match message etc.)