Home PageКаталог Изменения НовыеКомментарии Пользователи Регистрация
CakePHP: Manual/CommonTasks/DataValidation ...
Это старая версия Manual/CommonTasks/DataValidation за 2009-03-25 15:15:08..

Проверка данных



Проверка данных (validation) – это важная часть каждого приложения, т.к. она помогает убедиться, что данные модели согласовываются с бизнес правилами программы. Например, вы можете захотеть убедиться, что пароли имеют длину не менее восьми символов, или убедиться, что имена пользователей уникальны. Определение правил проверки данных упрощает работу с формами.


Существует множество аспектов в процессе контроля данных. В этой главе мы рассмотрим процесс со стороны модели. По существу: что происходит, когда вы вызываете метод save() вашей модели. Дополнительную информацию о том, как управлять выводом ошибок валидации, смотрите в главе о FormHelper.


Первый шаг в проверке данных – это создание правил валидации в модели. Для того, чтобы сделать это, используйте массив Model::validate в определении модели, например:


<?php
class User extends AppModel {  
    var 
$name 'User';
    var 
$validate = array();
}
?>


В примере выше, массив $validate добавлен в модель User, но он не содержит правил валидации. Предположим, что в таблице users есть поля login, password, email, born. В следующем примере показаны несколько простых правил проверки данных, которые применяются к указанным полям:


<?php
class User extends AppModel {
    var 
$name 'User';
    var 
$validate = array(
        
'login' => 'alphaNumeric',
        
'email' => 'email',
        
'born' => 'date'
    
);
}
?>


Последний пример показывает, как правила валидации могут быть добавлены для полей модели. Для поля login разрешены только буквы и цифры, email должен быть правильный, и в born будет пропущена только корректная дата. Определение правил валидации дает возможность CakePHP автоматически показывать сообщения с ошибками в формах, если подтвержденные данные не соответствуют определенным правилам.


В CakePHP есть много правил контроля данных и использовать их довольно просто. Некоторые встроенные правила позволяют проверять формат электронных адресов, URL и номеров кредитных карт – но детальнее об этом мы расскажем позже.


А сейчас рассмотрим пример с более сложными правилами валидации, который показывает преимущества некоторых из этих встроенных правил:


<?php
class User extends AppModel {
    var 
$name 'User';
    var 
$validate = array(
        
'login' => array(
            
'alphaNumeric' => array(
                
'rule' => 'alphaNumeric',
                
'required' => true,
                
'message' => 'Только буквы и цифры'
                
),
            
'between' => array(
                
'rule' => array('between'515),
                
'message' => 'От 5 до 15 символов'
            
)
        ),
        
'password' => array(
            
'rule' => array('minLength''8'),
            
'message' => 'Минимум 8 символов'
        
),
        
'email' => 'email',
        
'born' => array(
            
'rule' => 'date',
            
'message' => 'Введите корректную дату',
            
'allowEmpty' => true
        
)
    );
}
?>


 
Комментарии
office.onix.ua (2009-12-17 10:20:26)
Добавить комментарий:

Файлов нет. [Показать файлы/форму]