#php #zend-framework #zend-form
#php #zend-framework #zend-форма
Вопрос:
Ниже приведен фрагмент кода, который был взят из формы,
$debit_amount = new Zend_Form_Element_Text('debit_amount', array(
'label' => 'Debit_amount',
'value' => '',
'class' => 'text-size text',
'required' => true,
'tabindex' => '13',
'validators' => array(
array('Digits', false, array(
'messages' => array(
'notDigits' => "Invalid entry, ex. 10.00",
'digitsStringEmpty' => "",
))),
array('notEmpty', true, array(
'messages' => array(
'isEmpty' => 'Debit_amount can't be empty'
)
)),
),
'filters' => array('StringTrim'),
//'decorators' => $this->requiredElementDecorators,
//'description' => '<img src="' . $baseurl . '/images/star.png" alt="required" />',
));
$this->addElement($debit_amount);
Когда я пытаюсь отправить форму, используя плавающее число, она выдает мою ошибку «Неверный ввод ….». Он не проверяет число с плавающей запятой. Любезный совет.
Ответ №1:
Используйте Zend_Validate_Float:
'validators' => array(
array('Float', ...
Ответ №2:
Вы получаете сообщение об ошибке, потому Digits
что валидатор проверяет только цифры. Об этом есть комментарий в документации Zend_Validate:
Note: Validating numbers
When you want to validate numbers or numeric values, be aware that this validator only
validates digits. This means that any other sign like a thousand separator or a comma
will not pass this validator. In this case you should use Zend_Validate_Int or
Zend_Validate_Float.
Как говорит @Zyava, использование Zend_Validate_Float
— это правильный путь.