当我使用InputFilter
时,int filters
$inputFilter->add($factory->createInput(array(
'name' => 'id',
'required' => true,
'filters' => array(
array('name' => 'Int'),
),
)));
答案 0 :(得分:0)
您需要使用allowEmpty
属性来强制InputFilter组件拒绝空值。
$inputFilter->add($factory->createInput(array(
'name' => 'id',
'required' => true,
'allowEmpty' => false, // <--- Look ma
'filters' => array(
array('name' => 'Int'),
),
)));
答案 1 :(得分:0)
您确定要使用Int
InputFilter 吗?它的功能是convert a scalar value to an Integer。它的代码只是:
public function filter($value)
{
return (int) ((string) $value);
}
将值转换为字符串。如果您的值是一个空字符串,它会将其转换为0,之后,在验证程序的执行过程中,所需的不起作用(它检查为0)。
在我看来,由于您输入的名称id
,您只想强制用户输入必须是数字的内容。你可以这样做:
$inputFilter->add( $factory->createInput( array(
'name' => 'id',
'required' => true,
'validators' => array(
array( 'name' => 'Digits' ),
)
) );