2016-12-01 4 views
0

Я пытаюсь проверить десятичное значение, я использую naturalNumber, но не признал значение, равное 1,00, больше нуля.Cakephp Model Validation decimal value

Как я могу работать с десятичными значениями с помощью проверки CakeHP 2? (0,01) будет принято!

Старается:

$this->loadModel('SomeModel');  
$data = array(
    'decimal_value' => '0,01', 
); 

$this->SomeModel->save($data); 

class SomeModel extends AppModel { 
    public $validate = array(
      'naturalNumber' => array(
       'rule' => 'naturalNumber', 
       'message' => 'Value must be grater than 0', 
       'required' => true 
      ) 
     ) 
    ); 
} 
+0

, не зная, 2 проверки CakePHP .. 0,01 не является натуральным числом. также возможно вам нужно использовать точку вместо запятой для десятичных знаков. запятые должны разделить тысячи. – at0mzk

ответ

1

Decimals не являются натуральными числами, натуральные числа не имеют фракций. Также 0,01 не подтверждает, Validation::naturalNumber('0,01') возвращает false.

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

Смотрите также