1

我的表单中有两个字段应该相互对应。如果用户在 DOB 字段中输入出生日期,则不得允许他/她输入大于 DOB 的居住时间

我在 add.ctp 中的两个字段如下

echo $this->Form->input('DOB',array('label' => 'Date of birth*', 'minYear' => 1900,    'maxYear' => 2000));


echo $this->Form->input('period_of_residence', array('label' =>'Period of residence in   Zimbabwe'));

所以现在我不知道我如何验证这两者,以便用户无法输入大于年龄的居住期。即使它在提交时验证,我也喜欢它。

4

1 回答 1

3

您可以在模型中创建自己的自定义验证函数,如下所示:

class MyModel extends AppModel {

    public $validate = array(
        'DOB' => array(
            'rule' => 'checkDOB',
            'message' => 'DOB cannot be greater than period of residence.'
        )
    );

    public function checkDOB($check) {
        return strtotime($check['DOB']) < strtotime($this->data['MyModel']['period_of_residence']);
    }
}
于 2012-06-26T16:39:56.970 回答