ZF2将0传递到所需的表单字段

jaap1990

好的,我在这里有些沮丧。根据下面的代码,在Zend Framework 2中将'0'传递给必需的formfield似乎是不可能的,而不会导致状态变为'invalid'。

// FLOAT (0.0)
    if ($type >= self::FLOAT) {
        $type -= self::FLOAT;
        if (is_float($value) && ($value == 0.0)) {
            $this->error(self::IS_EMPTY);
            return false;
        }
    }

    // INTEGER (0)
    if ($type >= self::INTEGER) {
        $type -= self::INTEGER;
        if (is_int($value) && ($value == 0)) {
            $this->error(self::IS_EMPTY);
            return false;
        }
    }

这段代码来自'Zend \ Validator \ NotEmpty',由inputFilterSpecification()方法中的'required = true'属性调用。

然后我的问题是:为什么?在我看来,0是一个完全有效的整数,而0.0是一个完全有效的浮点数。

另外:如何在保持'required = true'的同时避免这种验证?您仍然知道我的领域仍然是必需的。

这是我的表单元素:

$this->add(
    array(
        'name' => 'price',
        'type' => 'Zend\Form\Element\Text',
        'options' => array(
           'label' => 'Price'
        )
   )
);

这是我的inputFilterSpecification:

'price' => array(
    'required' => true,
    'validators' => array(
        array(
            'name' => 'Float',
        ),
    ),
    'filters' => array (
        array(
           'name' => 'Shop\Form\Filter\CurrencyFilter',
        )
    ),
),
ins0

像这样从zf2扩展验证器类

namespace Application\Validator;

use Zend\Validator\NotEmpty;

class NotEmptyAllowZero extends NotEmpty {

    public function isValid( $value ) {

        $type = $this->getType();

        // allow zero float
        if($type >= self::FLOAT && $value == 0.0) {
            return true;
        }
        // allow integer zero
        if ($type >= self::INTEGER && $value == 0) {
            return true;
        }

        // go on with zend validator
        return parent::isValid( $value );
    }

}

在模块配置中注册自定义验证器(例如Application / Config.php)

'service_manager'    => array(
    'invokables' => array(
        'NotEmptyAllowZero'            => 'Application\Validator\NotEmptyAllowZero'
    )
)

并且您可以将其用作验证器(!not过滤器)

'price' => array(
    'required' => true,
    'validators' => array(
        array(
            'name' => '\Application\Validator\NotEmptyAllowZero',
        ),
    ),
    'filters' => array (
        array(
            'name' => 'Shop\Form\Filter\CurrencyFilter',
        )
    ),
),

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ZF2如何将变量传递给表单

来自分类Dev

将表单字段值传递到新的(动态)页面

来自分类Dev

将(Angular)数组传递到Rails表单字段

来自分类Dev

将表单字段值传递到新的(动态)页面

来自分类Dev

如何通过ZF2 FormElementManager将Doctrine ObjectManager传递给表单

来自分类Dev

使用Ajax将表单数据发布到ZF2控制器

来自分类Dev

ZF2表单:如何提供字段提示

来自分类Dev

如何在ZF2中全局将变量传递到layout.phtml?

来自分类Dev

ZF2,将变量从控制器传递到自定义元素

来自分类Dev

如何将值从html元素传递到表单字段Django

来自分类Dev

我如何将下拉列表传递到表单字段

来自分类Dev

Rails表单字段将旧数据传递到列入白名单的参数

来自分类Dev

如何将js变量传递到隐藏表单字段?

来自分类Dev

ZF2 将空的发布字段转换为 Null

来自分类Dev

如何将动态创建的表单字段绑定到Angular 2中的对象?

来自分类Dev

将filemimetype验证器添加到Zf2表单时,HTTP响应返回状态0

来自分类Dev

ZF2依赖关系表单未从字段集中获取字段

来自分类Dev

Zf2中的Bootstrap 3表单

来自分类Dev

ZF2表单中的按钮内容

来自分类Dev

Zf2中的Bootstrap 3表单

来自分类Dev

全局更改ZF2表单格式

来自分类Dev

ZF2:如何翻译表单注释?

来自分类Dev

Struts2-将具有相同名称的jsp表单字段中的数据传递给操作类

来自分类Dev

ZF2学说-字段集绑定

来自分类Dev

将错误绑定到symfony2控制器中的嵌入式表单字段

来自分类Dev

如何将字段属性值传递给Django表单字段错误消息

来自分类Dev

将 ACF 字段的值传递给隐藏的 Ninja 表单字段

来自分类Dev

将会话变量传递到zf2中的外部url

来自分类Dev

将字段从表单传递到网站上的字段

Related 相关文章

热门标签

归档