J'essaye de configurer la validation de Modèle sur un champ qui doit seulement être vérifié si un autre champ est égal à une valeur particulière.cakephp: validation de modèle basée sur un autre champ
Mon premier champ est une requête qui est une liste déroulante avec beaucoup de valeurs, une valeur est 'Autre' si cela est sélectionné alors j'ai besoin que le deuxième champ 'query_other' ne soit pas vide.
Je cette configuration dans mon article Modèle:
public $validate = array(
'query' => array(
'notempty' => array(
'rule' => array('notempty'),
'message' => 'THE QUERY IS REQUIRED',
//'allowEmpty' => false,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
'query_other' => array(
'notempty' => array(
'rule' => array('if_query_other', 'query'),
'message' => 'REASON IS REQUIRED',
//'allowEmpty' => false,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
);
J'ai alors cette fonction personnalisée qui est appelée ci-dessus.
function if_query_other(&$data, $check, $query_field) {
if($this->data[$this->name][$query_field] == 'Other' && $check == NULL)
{
return false;
}
else
{
return true;
}
}
Il ne fonctionne pas, je reçois actuellement cette erreur: Paramètre 1 à la rubrique :: if_query_other() devrait être une référence, valeur donnée
CakePHP Version 2.3.6
Merci
Où se situe la fonction de validation, dans le modèle lui-même, ou dans un comportement? Aussi, vous devriez toujours mentionner votre version exacte de CakePHP! – ndm
Merci, la validation est dans le Modèle d'Objet, j'utilise la version 2.3.6 de cakePHp. – sluggerdog