Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
uran26
цитировать
Зарегистрирован: 02 Апр 2009 12:13:49 Сообщения: 31 Откуда: Кировоград
|
Добавлено: 08 Июл 2011 18:44:25 Заголовок сообщения: Валидация: не равно 0 |
|
|
Подскажите, пожалуйста, как создать правило валидации, чтобы принимало только цифры(float), но не пропускало ноль (!==0)? |
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 11 Июл 2011 08:53:09 Заголовок сообщения: |
|
|
А мануал, что, не помог?
http://book.cakephp.org/view/134/Core-Validation-Rules
Если поставить два правила - не работает? |
|
Вернуться к началу |
|
|
uran26
цитировать
Зарегистрирован: 02 Апр 2009 12:13:49 Сообщения: 31 Откуда: Кировоград
|
Добавлено: 11 Июл 2011 21:00:58 Заголовок сообщения: |
|
|
не помог.
есть вот так:
Код: |
'count' => array (
'notEmpty_rule' => array (
'rule' => 'notEmpty',
'required' => true,
'allowEmpty' => false,
'message' => 'Не может быть "0"'
),
'maxLength_rule' => array (
'rule' => array ( 'maxLength', 6 ),
'required' => true,
'allowEmpty' => false,
'message' => 'Максимум 999999'
),
'minLength_rule' => array (
'rule' => array ( 'minLength', 1 ),
'required' => true,
'allowEmpty' => false,
'message' => 'Минимум 1'
),
'numeric_rule' => array (
'rule' => array ( 'numeric' ),
'required' => true,
'allowEmpty' => true,
'message' => 'Только цифры'
)
) |
|
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 12 Июл 2011 09:03:10 Заголовок сообщения: |
|
|
Ну есть же кастом валидация
http://book.cakephp.org/view/150/Custom-Validation-Rules
Пишешь функцию и валидируешь как душе угодно... |
|
Вернуться к началу |
|
|
uran26
цитировать
Зарегистрирован: 02 Апр 2009 12:13:49 Сообщения: 31 Откуда: Кировоград
|
Добавлено: 12 Июл 2011 10:44:24 Заголовок сообщения: |
|
|
Добавил в модель в $validate:
Код: |
'notNull_rule' => array (
'rule' => 'notNull',
'required' => true,
'allowEmpty' => false,
'message' => 'Не может быть "0"'
)
|
и в validation.php дописал новую функцию:
Код: |
function notNull($check) {
$_this =& Validation::getInstance();
$_this->__reset();
$_this->check = $check;
if (is_array($check)) {
$_this->_extract($check);
}
if ( $_this->check == 0 ) {
return false;
}
$_this->regex = '/[^\d]+/m';
return $_this->_check();
}
|
Верно ли тут?
Код: | $_this->regex = '/[^\d]+/m'; |
|
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 12 Июл 2011 11:11:41 Заголовок сообщения: |
|
|
Ну если работает, значит - верно
Регекс, насколько я вижу, допускает наличие цифры - одной и больше, Если нет - значит плохо |
|
Вернуться к началу |
|
|
uran26
цитировать
Зарегистрирован: 02 Апр 2009 12:13:49 Сообщения: 31 Откуда: Кировоград
|
Добавлено: 12 Июл 2011 11:15:27 Заголовок сообщения: |
|
|
Да, по замыслу поле должно содержать одну или больше цифры.
Спасибо. |
|
Вернуться к началу |
|
|
|