如何使用模型验证来确保一个字段是> = CakePHP中同一模型中的另一个字段?

时间:2009-06-29 07:37:07

标签: cakephp validation cakephp-1.2

我正在尝试验证我的模型,我正在使用CakePHP 1.2.3.8166和mysql 5

我的模型定义为:

<?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"]
    }
}

我的桌子有两个字段; maxfield&amp; minfield。我需要验证maxfield始终&gt; = minfield,但我无法弄清楚如何检查minfield值。

2 个答案:

答案 0 :(得分:1)

您可以使用$ this-&gt; data ['Actividad'] ['minfield']

访问“minfield”的值

答案 1 :(得分:0)

你已经对maxfield进行了验证,你只需要对minfield做同样的事情。所以你的$ validate应该是这样的:

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

顺便说一下。 'rule'=&gt; 'nameOfValidationFunction'。无需放入数组。