Salut tout le monde, j'ai un petit problème, j'y suis depuis ce matin, mais impossible de trouver d'ou il viens, j'ai re coder 2 fois la fonctions, mais rien n'y fait, voici ma fonction :

public function edit(){
    if($this->request->is(array('post','put'))){
        $confirm=$this->User->find('first',array('conditions'=>array('User.id'=>$this->Auth->user('id')),'fields'=>array('User.id','User.password')));
        $passwordHasher=new SimplePasswordHasher();
        $passwordConfirm=$passwordHasher->hash($this->request->data'User']'confirm']);
        if($passwordConfirm==$confirm'User']'password']){
            if(empty($this->request->data'User']'password'])){
                $this->request->data'User']'password']=$this->request->data'User']'passwordConfirm']=null;
                $this->User->id=$this->Auth->user('id');
                if($this->User->save($this->request->data)){
                    $this->Session->setFlash('Informations modifiés','alert',array('class'=>'success'));
                }else{
                    $this->Session->setFlash('Une erreur s\'est produite, veuillez réessayer ou contacter le support','alert',array('class'=>'alert'));
                }
            }else{
                if($this->request->data'User']'password']==$this->request->data'User']'passwordConfirm']){
                    $this->User->id=$this->Auth->user('id');
                    if($this->User->save($this->request->data)){
                        $this->Session->setFlash('Informations modifiés, veuillez vous reconnecter','alert',array('class'=>'sucess'));
                        $this->Auth->logout();
                        $this->redirect(array('action'=>'login'));
                    }else{
                        $this->request->data'User']'password']=$this->request->data'User']'passwordConfirm']=null;
                        $this->Session->setFlash('Une erreur s\'est produite, veuillez réessayer ou contacter le support','alert',array('class'=>'alert'));
                    }
                }else{
                    $this->request->data'User']'password']=$this->request->data'User']'passwordConfirm']=null;
                    $this->Session->setFlash('Vos mots de passe sont différents','alert',array('class'=>'alert'));
                }
            }
            $this->request->data'User']'confirm']=null;
        }else{
            $this->Session->setFlash('La confirmation de propriété à échoue !','alert',array('class'=>'alert'));
        }
    }
    $user=$this->User->find('first',array('conditions'=>array('User.id'=>$this->Auth->user('id'))));
    $this->set('user',$user);
}

Si j'envoie le formulaire, il détecte bien si la confirmation est bonne, mais par la suite quoique j'essaye, il m'affiche : 'Une erreur s'est produite ...' je n'arrive pas à trouver d'ou viens le problème.

Merci de vos réponses, Cordialement, Matspyder

2 réponses


Salut,

tu as quoi si tu debug "$this->validationErrors"

Rien du tout :

\app\View\Users\edit.ctp (line 2)
array(
    'User' => array()
)

Cependant maintenant, je ne sait pas pourquoi, il m'affiche la notif comme quoi que les infos ont bien été modifié, mais rien n'est changer en BDD