Probleme de model

Par Imploz54, il y a 11 ans


Bonjour,
J'ai un soucis avec $validate dans CakePHP 2.6.2.
Mes messages d'erreurs s'affiche tous sauf celui de password.

Mon User.ctp

<?= $this->Form->create('User', array('novalidate' => true)); ?> <?= $this->Form->input('name', array('label' => "Prénom :")); ?> <?= $this->Form->input('lastname', array('label' => "Nom :")); ?> <?= $this->Form->input('mail', array('label' => "Email :")); ?> <?= $this->Form->input('password', array('label' => "Mot de passe :")); ?> <?= $this->Form->end("S'enregistrer"); ?>

Mon Controller

<?php class UsersController extends AppController{ function signup(){ if($this->request->is('post')){ $d = $this->request->data; $d['User']['id'] = null; if(!empty($d['User']['password'] = Security::hash($d['User']['password']))){ } if($this->User->save($d,true,array('name','lastname','mail','password'))){ $this->Session->setFlash("Votre compte à bien était crée","notif"); }else{ $this->Session->setFlash("Merci de corriger vos erreurs","notif",array( 'type' => 'error')); } } } }

Mon Model

<?php class user extends AppModel{ public $validate = array( 'name' => array( array( 'rule' => 'alphanumeric', 'required' => true, 'allowEmpty' => false, 'message' => "Votre prenom n'\est pas valide" ) ), 'lastname' => array( array( 'rule' => 'alphanumeric', 'required' => true, 'allowEmpty' => false, 'message' => "Votre nom n'est pas valide" ) ), 'mail' => array( array( 'rule' => 'email', 'required' => true, 'allowEmpty' => false, 'message' => "Votre email n'est pas valide" ), array( 'rule' => 'isUnique', 'message' => "Cette email est déja utilisé" ) ), 'password' => array( array( 'rule' => 'notEmpty', 'message' => "Votre mot de passe n'est pas valide", 'allowEmpty' => false, ) ) ); }

Merci d'avance pour votre aide.

1 réponse

Imploz54, il y a 11 ans

J'ai trouvé une solution au problème.

Il suffit juste de rajouté une ligne dans mon controller qui est : if($this->User->validates()){}

Juste après $d['User']['id'] = null;

Problème résolu après quelque recherche sur le forum.

Merci.