2009-06-29 8 views
2

Je suis en train de valider mon modèle, je me sers CakePHP 1.2.3.8166 et MySQL 5Comment utiliser une validation de modèle pour s'assurer qu'un champ est> = un autre champ dans le même modèle dans CakePHP?

Je mon modèle definied comme:

<?php 
class Actividad extends AppModel { 
    var $name = 'Actividad'; 
    var $validate = array('maxfield' => array(
     'rule'=> array('chkValue'), 
     'message'=>'i2' 
    )); 

    function chkValue($data){ 
     return $data["maxfield"]>=$data["minfield"] 
    } 
} 

Ma table a 2 champs; maxfield & minfield. J'ai besoin de valider maxfield toujours> = minfield mais je ne peux pas comprendre comment vérifier la valeur minfield.

Répondre

1

Vous pouvez accéder à la valeur de "minField" avec $ this-> data [ 'Actividad'] [ 'minField']

+0

merci, j'essayais avec ce ["minifield"]. merci –

0

vous avez déjà la validation de Maxfield, il vous suffit de faire la même chose avec le minfield. donc votre $ valider devrait être comme ceci:

var $validate= array(
       'maxfield' => array(
        'rule'=> 'chkValue', 
        'message'=>'i2' 
       ), 
       'minfield' => array(
        'rule'=> 'chkValue', 
        'message'=>'i2' 
       ) 
     ); 

Et en passant. 'rule' => 'nameOfValidationFunction'. pas besoin de mettre en rangée.

+0

Oh merci, je l'ai mis dans un tableau, parce que certains exemples le mettre comme il, (en passant les paramètres je suppose) –

Questions connexes