Home PageКаталог Изменения НовыеКомментарии Пользователи Регистрация
CakePHP: Manual/CommonTasks/DataValidation/CoreRules ...
Это старая версия Manual/CommonTasks/DataValidation/CoreRules за 2009-04-09 11:46:32..

Встроенные правила валидации


Класс Validation в CakePHP содержит правила проверки данных, которые могут упростить валидацию данных модели. Этот класс содержит множество, часто используемых, приемов проверки данных. Ниже представлен полный перечень всех правил с примерами использования.



alphaNumeric


Данные для поля должны содержать только буквы и цифры.


<?
var $validate = array(
    
'login' => array(
        
'rule' => 'alphaNumeric',
        
'message' => 'Имена пользователей должны содержать только буквы и цифры.'
    
)
);
?>



between


Длина данных для поля должна попадать в указанный диапазон. Должны быть определены и минимум и максимум. Используется <=, а не <


<?
var $validate = array(
    
'password' => array(
        
'rule' => array('between'515),
        
'message' => 'Длина пароля должны быть от 5 до 15 символов.'
    
)
);
?>



blank


Это правило используется для того, чтобы убедиться, что поле осталось пустым или присутствуют только пробелы (т.е. пробелы, символы табуляции, возврат каретки и новая строка).


<?
var $validate = array(
    
'id' => array(
        
'rule' => 'blank',
        
'on' => 'create'
    
)
);
?>



boolean


Данные для поля должны быть типа boolean. Допустимые значения: true или false, целые 0 или 1, или строковые '0' или '1'.


<?
var $validate = array(
    
'myCheckbox' => array(
        
'rule' => array('boolean'),
        
'message' => 'Некорректные значения для myCheckbox'
    
)
);

?>



cc


Правило используется для проверки валидности номера кредитной карты. Оно принимает три параметра: 'type', 'deep' и 'regex'.


Индексу 'type' могут быть присвоены значения 'fast', 'all' или одно из следующих:



Если 'type' установлен в 'fast', то будет производиться проверка для основных форматов нумерации кредитных карт. Установка 'type' в 'all' будет проверять для всех типов кредитных карт. Вы также можете сопоставить 'type' массив типов, с которыми вы хотите производить сравнение.


Индексу 'deep' должно быть сопоставлено значение типа boolean. Если он установлен в true, валидация будет использовать алгоритм Луна http://ru.wikipedia.org/wiki/Алгоритм_Луна. По умолчанию установлен в false.


Индекс 'regex' позволяет вам использовать вам собственное регулярное выражение, которое будет использоваться для проверки номера кредитной карты.


<?
var $validate = array(
    
'ccnumber' => array(
        
'rule' => array('cc', array('visa''maestro'), falsenull),
        
'message' => 'Неверный номер кредитной карты.'
    
)
);

?>



comparison


Comparison используетс для сравнения числовых значений. Он поддерживает “is greater”, “is less”, “greater or equal”, “less or equal”, “is less”, “equal to”, и “not equal”. Некоторые примеры представлены ниже:


<?
var $validate = array(
    
'age' => array(
        
'rule' => array('comparison''>='18),
        
'message' => 'Должно быть не менее 18 лет.'
    
)
);

var 
$validate = array(
    
'age' => array(
        
'rule' => array('comparison''greater or equal'18),
        
'message' => 'Должно быть не менее 18 лет.'
    
)
);

?>



date


Это правило гарантирует, что дата будет введена в корректных форматах. Единственный параметр (который может быть массивом) может быть передан. Он будет использоваться для проверки формата предлагаемой даты. Значения параметра могут быть следующие:



Если не передан ни один индекс, то по умолчанию будет использоваться 'ymd'.


<?
var $validate = array(
    
'born' => array(
        
'rule' => 'date',
        
'message' => 'Введите дату в формате YY-MM-DD.',
        
'allowEmpty' => true
    
)
);
?>


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



decimal



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

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