【问题标题】:zend framework 2 - compare 2 inputs using validator?zend 框架 2 - 使用验证器比较 2 个输入?
【发布时间】:2013-07-25 03:37:19
【问题描述】:

我是 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 中创建的。

谢谢

【问题讨论】:

标签: php zend-framework zend-framework2 zend-form zend-validate


【解决方案1】:

感谢 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'];
                    },
                ),
            )));

【讨论】:

  • 键'name'被提及两次
【解决方案2】:

上面的答案可能是正确的,但可能会出现一些语法或回调错误。原因是,我们一般在 Models InputFilters 中使用 Callback Validation 函数,而不是在表单定义部分(Zend Framework 2.2.1 版本)。

这个回调脚本部分应该在 Model - InputFilters 里面,请参考这个链接:https://stackoverflow.com/a/19263037/2190889

根据这个 Url 参考,日期验证部分可以完美运行。

【讨论】:

    猜你喜欢
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多