我是zend框架2的新手,我有一个关于比较工厂支持形式的两个输入的问题。我的方案如下:
我想比较两个输入,例如$startDate
和$endDate
。我想确认$startDate
始终小于$endDate
。我该怎么做?例如:
$inputFilter->add($factory->createInput(array(
'name' => 'startDate',
'required' => true,
'validators' => array(
array(
'name' => 'LessThan',
'options' => array(
'max' => $endDate,
),
),
),
)));
仅供参考,我正在关注相册教程,并在$inputFilter
中创建了classTable.php
。
由于
答案 0 :(得分:4)
感谢Crisp!我用类似的东西解决了它:
$inputFilter->add($factory->createInput(array(
'name' => 'startDate',
'required' => true,
'name' => 'Callback',
'options' => array(
'message' => array(
Callback::INVALID_VALUE => 'Invalid period is given.',
),
'callback' => function($value, $context=array()) {
return $value < $context['endDate'];
},
),
)));
答案 1 :(得分:0)
上面的答案可能是正确的,但可能会出现一些语法或回调错误。原因是,我们通常在模型InputFilters中使用回调验证函数,而不是在表单定义部分(从Zend Framework版本2.2.1开始)。
此回调脚本部分应位于Model - InputFilters内,请参阅此链接:https://stackoverflow.com/a/19263037/2190889
根据此Url参考,日期验证部分可以正常运行。