Date de publication : Jul 25, 2012 12:49:36 PM
On peut customiser les règles de validation, par exemple pour faire un contrôle back office.
Dans l'exemple suivant, on a 3 règles sur le champ code_sages de la table rapprochables.
Le champ est envoyé à la méthode custom.
Voir dans valideUniciteSages, comment récupérer un autre champ du formulaire (ici, $this->data['Rapprochable']['codique'] pour avoir le champ codique).
Dans le Model :
public function valideExistenceSages($cua) {
if (!$this->Topad->findByCodeSages($cua)) {
return false;
}
else {
return true;
}
}
public function valideUniciteSages($cua) {
// on récupère le codique du formulaire $this->data['codique']
// pour pouvoir ignorer le rapprochement actuel dans le contrôle d'unicité
if ($this->find('count', array('conditions' => array('Rapprochable.code_sages' => $cua, 'Rapprochable.codique !=' => $this->data['Rapprochable']['codique']))) == 1) {
return false;
}
else {
return true;
}
}
public $validate = array(
'code_sages' => array(
'nonVide' => array(
'rule' => 'notEmpty',
'message' => 'Champ obligatoire',
),
'existence' => array(
'rule' => array('valideExistenceSages'),
'message' => 'Le code sages n\'existe pas',
'last' => true
),
'unicite' => array(
'rule' => array('valideUniciteSages'),
'message' => 'Le code sages est déjà utilisé dans une relation',
'last' => true
)
)
);