2010-09-15 2 views
0

J'utilise ceci pour valider un champ de formulaireComment utiliser l'état "et" dans le modèle cakephp?

$ valide = $ this-> isUnique (tableau ($ FieldName1 => $ data, $ FieldName2 => 'Y'));

l'exécution de cette requête vient de la manière suivante:

SELECT COUNT (*) AS count DE users AS User OU ((Useremailid = ('[email protected]')) OR (Userisdeleted.. = 'Y'))

J'ai juste besoin de changer ce "OU" en "ET".

S'il vous plaît aidez-moi !!!!

Répondre

0

Je ne sais pas pourquoi vous attribuez votre validation à une variable. Sinon, toute votre validation doit être effectuée à l'intérieur de votre modèle dans la matrice validate.

Jetez un oeil au livre, http://book.cakephp.org/view/1152/Core-Validation-Rules#isUnique-1166

Si vous appelez à l'aide d'AJAX ou similaire où le modèle n'est pas appelé dans le cadre d'un save() vous pouvez toujours

$this->Model->set($this->data); 
if($this->Model->validates($this->data){ 
    // Validation passed 
}else{ 
    // Process validation errors, using 
    $this->Model->invalidFields; 
} 
1

Le API documentation est toujours une bonne lecture:

Model::isUnique

« Retourne false si les champs transmis correspondance les (par défaut, tous si $or = false) de leurs valeurs correspondantes. »

Paramètres:

array $fieldsnécessaires
paires champ/valeur à la recherche (si aucune valeur spécifiée, ils sont tirés de $this->data)

boolean $oren option, true
Si false, tous les champs indiqués doivent correspondre pour une valeur de retour false

Retour:
booleanFalse si un enregistrement correspondant à tous les champs se trouvent

Questions connexes