Home PageКаталог Изменения НовыеКомментарии Пользователи Регистрация
CakePHP: Manual/CommonTasks/DataValidation/FromController ...

Валидация данных из контроллера


Обычно вы будете просто использовать метод модели save, но может быть вы захотите проверить данные без их сохранения. Например, вы можете захотеть отобразить для пользователя некоторую дополнительную информацию непосредственно перед её сохранением в базу данных. Проверка данных требует немного другие процессы в отличие от просто сохранения.


Во-первых, передадим данные модели:


<?
$this
->ModelName->set$this->data );
?>


Затем, для проверки, проходят ли данные валидацию, используйте метод модели validates, который возвратит true в случае успешной валидации или false в обратном случае:


<?
if ($this->ModelName->validates()) {
    
// код для случая успешной валидацц
} else {
    
// код для случая, когда валидация не пройдена
}
?>


Метод validates запускает метод invalidFields, который заполняет свойство модели validationErrors. Также метод invalidFields возвращает эти данные в качестве результата.


<? $errors $this->ModelName->invalidFields(); // содержит массив validationErrors ?>


Обратите внимание, что данные должны быть переданы модели перед тем, как они будут проходить проверку. Это отличается от метода save, который позволяет передавать ему данные в качестве параметра. Также помните, что не требуется вызывать validates перед вызовом метода save, так как save автоматически проверит данные перед их сохранением.


Для проверки множества моделей используйте следующий код:


<?
if ($this->Model->saveAll($this->data, array('validate' => 'only'))) {
  
// данные правильные
} else {
  
// данные некорректные
}
?>


<< Пользовательские правила валидации | Чистка данных >>


 
Комментарии
Добавить комментарий:

Файлы [Скрыть файлы/форму]

Портал о лечении, диагностике и видах цистита