cakephp v2.2自定义验证方法isn';不要被叫

cakephp v2.2自定义验证方法isn';不要被叫,php,validation,cakephp,cakephp-model,Php,Validation,Cakephp,Cakephp Model,我试图在cakephp 2.2.2中使用自定义验证方法,但由于某些原因,没有调用该函数。当我在另一个项目中使用cakephp时,自定义验证方法在同一个系统上工作 我发现了一个关于堆栈溢出的问题,似乎是同一个问题,但没有解决方案() 这是我的模型中的代码: <?php App::uses('AppModel', 'Model'); class Person extends AppModel { public $validate = array( 'dob' =&g

我试图在cakephp 2.2.2中使用自定义验证方法,但由于某些原因,没有调用该函数。当我在另一个项目中使用cakephp时,自定义验证方法在同一个系统上工作

我发现了一个关于堆栈溢出的问题,似乎是同一个问题,但没有解决方案()

这是我的模型中的代码:

<?php
App::uses('AppModel', 'Model');

class Person extends AppModel {

    public $validate = array(
        'dob' => array(
            'date' => array(
                'rule' => array('date'),
            ),
            'date_between' => array(
                'rule' => array('dateBetween', '01/01/1996'),
                'message' => 'You are not the right age to enter',
            ),
        ),
    );

    public function dateBetween($v1, $v2) {
        dump_var($v1);
        dump_var($v2);

        return false;
    }

}

您确定控制器正在发送此字段
dob
,以使其通过验证?是的,正确的日期正在保存到数据库中,但控制器中的自定义函数未对其进行验证。我正在设置数据:“$this->Person->set($this->request->data)”,然后验证它:“$this->Person->validates()“;然后我将数据写入会话:$this->session->write($this->request->data);”,然后我重定向到确认页面,从会话读取数据:$tmpdata=$this->session->read('tmpdata');最后保存:$this->Person->save($tmpdata,array('validate'=>false));”您可以尝试在两个验证中使用属性
'required'=>true
。。。无论如何,谢谢你的帮助:)