как предотвратить проверку элемента - PullRequest
0 голосов
/ 15 июня 2010

Привет всем Я использую рамки CakePHP для моего проекта. в моей форме я беру галочку при нажатии на это два других текстовых поля. Используя метод проверки CakePHP, я проверяю данные формы, но я хочу, чтобы, когда флажок не был установлен, он избегал проверки для этого текстового поля. это проверяется только тогда, когда флажок установлен. так что плз помогите мне.

заранее спасибо

Ответы [ 3 ]

1 голос
/ 22 июня 2010

Для этого вы можете использовать свои модели beforeValidate servicecall и добавить дополнительные критерии проверки для этой модели.

Например:

function beforeValidate($options = array())
{
    if(!empty($this->data['Model']['fieldOne']))
        $this->validate['fieldTwo'] = array(/*normal validation rules*/);
    return true; // Needed or validation fails
}
0 голосов
/ 27 июля 2010

Кроме того, вы можете отменить проверку в вашем контроллере следующим образом:

unset($this->Model->validate);
0 голосов
/ 23 июня 2010

Вы можете использовать пользовательские методы проверки :

var $validate = array(
    'checkbox1' => 'checkboxRule'
);

// If checkbox1 is checked, requires checkbox2 to be checked as well
function checkboxRule() {
    if (!empty($this->data[$this->alias]['checkbox1'])) {
        return !empty($this->data[$this->alias]['checkbox2']);
    }
    return true;
}

Вы также можете сделать недействительными другие поля, например checkbox2, одновременно вызывая $this->invalidate('checkbox2') в своем пользовательском методе.

...