2010-06-15 1 views
0

привет всем, я использую рамки cakephp для своего проекта. в моей форме я беру флажок при нажатии на это другое текстовое поле. с помощью метода проверки cakephp i проверять данные формы, но я хочу, чтобы при этом флажок не был установлен, тогда он избегает проверки для этого текстового поля. он проверяется только тогда, когда установлен флажок. так PLZ помочь мне.как предотвратить элемент для проверки

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

ответ

1

Вы можете использовать ваши модели 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

Вы можете использовать custom validation methods:

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') в пользовательском методе.

0

Кроме того, вы можете сбросить проверку в контроллере, как это:

unset($this->Model->validate); 
+0

благодаря но предотвратить проверку всей модели element.and я хочу предотвратить выбранный –