php - ZF2 空输入过滤器和数字验证器

标签 php validation zend-framework2

我有一个实现 InputFilterAwareInterface 的模型。对于其中一个字段,我希望验证用户输入是否为数字,并使用 null 过滤器来确保 db 字段设置为 null。有没有办法做到这一点?以下内容不起作用。

        $inputFilter->add(array(
            'name' => '_programme_id',
            'required' => false,
            'allow_empty' => true,
            'validators' => array(
                    array(
                            'name' => 'Digits',
                    )
            ),
            'filters' => array(
                    array(
                            'name' => 'Null',
                            'options' => array(
                                    'type' => 'all'
                            ),
                    )
            ),
        )
    );

验证失败,并显示消息“给定的类型无效。需要字符串、整数或 float ”

这似乎是因为过滤发生在验证之前。有没有快速的方法来实现这种行为?

最佳答案

您可以使用 Int 过滤器将值转换为整数,然后将其传递给 Null 过滤器,如下所示:

$inputFilter->add(array(
            'name' => '_programme_id',
            'required' => false,
            'allow_empty' => true,
            'validators' => array(
                    array(
                            'name' => 'Digits',
                    )
            ),
            'filters' => array(
                    array(
                            'name' => 'Int',
                    )
                    array(
                            'name' => 'Null',
                            'options' => array(
                                    'type' => 'all'
                            ),
                    )
            ),
        )
    );

关于php - ZF2 空输入过滤器和数字验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21878047/

相关文章:

php - Zend Framework 2 模块的正确或首选目录结构是什么?

php - select * from channel_list where ch=".$ch. doesn't work

java - 在 GWT 中使用 javax.validation 会引发运行时错误 ClassNotFoundException

mysql - 在 mysql JOIN 查询的 'ON' 子句中使用 mysql 函数

javascript - AsyncAPI 的架构验证

Javascript 表单输入值与输入最大值的比较

php - ZF2 何时使用 getServiceLocator() 何时不使用

php - 为两台远程机器同步两个 mysql 数据库

php - .htaccess 文件 - 无法正常工作

php - 'priority' 中的未知列 'field list'(插入 `store_categories` .....)