首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZF2 -输入类型“数字”总是需要的?

ZF2 -输入类型“数字”总是需要的?
EN

Stack Overflow用户
提问于 2015-09-15 12:03:05
回答 1查看 870关注 0票数 0

我的Form.php中有这段代码

代码语言:javascript
复制
$this->add(array(
    'name' => 'unidades_andar',
    'type' => 'number',
    'attributes' => array(
        'class' => 'form-control',
    ),
));

这个在我的view.phtml里

代码语言:javascript
复制
<?php echo $this->formElement($form->get('unidades_andar')); ?>

当我试图提交表格时,我有一个错误:

数组( unidades_andar => Array ( isEmpty =>值是必需的,不能为空))

我已经尝试设置“必需的=>假”。

如果我把类型改为文本而不是数字,它就能工作。

但是为什么我不能使用类型号呢?它似乎总是需要的..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-15 12:24:40

如果您查看zend-framework/zend-form/src/Element/Number.php的源,可以看到默认情况下将此字段设置为必需的。

代码语言:javascript
复制
/**
 * Provide default input rules for this element
 *
 * Attaches a number validator, as well as a greater than and less than validators
 *
 * @return array
 */
public function getInputSpecification()
{
    return array(
        'name' => $this->getName(),
        'required' => true,
        'filters' => array(
            array('name' => 'Zend\Filter\StringTrim')
        ),
        'validators' => $this->getValidators(),
    );
}

所以你需要这样做

代码语言:javascript
复制
public function getInputFilterSpecification()
{
    return [
        [
            "name"=>"unidades_andar",
            'required' => false,
            'allow_empty' => true, // this will allow submitting empty values like ''
        ],
    ];
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32585600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档