在 \Zend\Validator\DateStep 中,我想覆盖如下所示的错误消息:
protected $messageTemplates = array(
self::NOT_STEP => "The input is not a valid step"
);
我有一个输入过滤器连接到一个包含“Zend\Form\Element\Date”类型元素的表单,它会自动调用 DateStep 验证器。
这是我的表格的相关部分:
$this->add(array(
'type' => 'Zend\Form\Element\Date',
'name' => 'appointment-date',
'options' => array(
'label' => 'Appointment Date',
'format' => 'Y-m-d'
),
'attributes' => array(
'min' => date('Y-m-d'), // today's date
'max' => '2020-01-01',
'step' => '2', // days; default step interval is 1 day
)
));
这是我的输入过滤器:
$inputFilter->add($factory->createInput(array(
'name' => 'appointment-date',
'required' => false,
'filters' => array(
array('name' => 'StripTags'),
),
'validators' => array(
array(
'name' => 'DateStep',
'options' => array(
//'step' => new DateInterval("P2D"),
//'baseValue' => new DateTime(),
'messages' => array(
\Zend\Validator\DateStep::NOT_STEP => 'Must be a day in the future',
),
),
),
),
)));
inputFilter 似乎被忽略了。我尝试在 inputFilter 中设置 step 和 baseValue,但这似乎根本不起作用。如果需要更多详细信息,可以在此处找到工作应用程序:https ://github.com/bickerstoff/zf2_datetest。