我有一个实现 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/