| Предыдущая тема :: Следующая тема   | 
	
	
	
		| Автор | 
		Сообщение | 
	
	
		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    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				Да, по замыслу поле должно содержать одну или больше цифры.
 
 
Спасибо. | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
	
	
	
		 |