Je vois 2 problème.
Dans le elseif, pas besoin de mettre le password à null
et puis dans le else de la sauvegarde, si le password est null on le supprime avec unset()
Voici mon bout de code
if($this->request->is('post') || $this->request->is('put')){
$d = $this->request->data'User'];
if($d'password'] != $d'passwordconfirm']){
$this->Session->setFlash("Les mots de passes ne correspondent pas", 'notif', array('type' => 'error'));
$this->redirect($this->referer());
}
else{
if(empty($d'passowrd'])){
unset($d'password']);
}
if($this->User->save($d)){
$this->Session->setFlash("L'utilisateur à bien été enregistré", 'notif', array('type' => 'success'));
}
}
}
elseif($id){
$this->User->id = $id;
$this->request->data = $this->User->read('username, role, id');
}
J'espère que ca peut t'aider