Пользовательский метод проверки cakephp v2.2 не вызывается

Я пытаюсь использовать собственный метод проверки в cakephp 2.2.2, но по какой-то причине функция не вызывается. Пользовательские методы проверки работали в той же системе, когда я использовал cakephp для другого проекта.

Я нашел вопрос о переполнении стека с похожей проблемой, но решения не было (Пользовательская проверка полей в 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;
    }

}

Примечание. dump_var() — это var_dump() с пре-тегами вокруг него.


person nevernew    schedule 05.10.2012    source источник
comment
Вы уверены, что это поле dob отправляется контроллером, чтобы оно прошло проверку?   -  person Paulo Rodrigues    schedule 05.10.2012
comment
да, правильная дата сохраняется в базе данных, но она не проверяется моей пользовательской функцией   -  person nevernew    schedule 05.10.2012
comment
в контроллере я устанавливаю данные: $this-›Person-›set($this-›request-›data); затем проверяю их: $this-›Person-›validates();, затем записываю данные к сеансу: $this-›Session-›write('tmpdata', $this-›request-›data); затем я перенаправляюсь на страницу подтверждения, читаю данные из сеанса: $tmpdata = $this-› Session-›read('tmpdata'); и, наконец, сохраните его: $this-›Person-›save($tmpdata, array('validate' =› false));   -  person nevernew    schedule 05.10.2012
comment
Вы можете попробовать использовать атрибут 'required' => true при обеих проверках.   -  person Paulo Rodrigues    schedule 05.10.2012
comment
Хорошо, кажется, он просто начал работать случайным образом, когда я обрезал таблицу базы данных ... в любом случае спасибо за вашу помощь :)   -  person nevernew    schedule 05.10.2012
comment
В качестве примечания CakePHP имеет встроенный метод с именами pr() и debug(), который автоматически включает для вас теги <pre>.   -  person David Yell    schedule 23.01.2013