我有一个实现InputFilterAwareInterface的模型。对于其中一个字段,我希望验证用户输入是数字并使用空过滤器以确保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'
),
)
),
)
);
验证失败,并显示消息“给定的类型无效。预期字符串,整数或浮点数”
似乎这是因为过滤在验证之前发生。有没有快速的方法来实现这种行为?
答案 0 :(得分:2)
您可以使用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'
),
)
),
)
);