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.
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.