gpt4 book ai didi

zend-framework2 - Zend 框架 2 如何在字段集中使用验证器链

转载 作者:行者123 更新时间:2023-12-04 16:07:39 24 4
gpt4 key购买 nike

我需要在 fieldset 的 getInputFilterSpecification 方法中使用验证器链来使用 breakChainOnFailure 参数并且只得到一条错误消息。

我知道使用 InputFilter 类创建验证器链如何解释 zend documentation ,例如

    $input = new Input('foo');
$input->getFilterChain()
->attachByName('stringtrim', true) //here there is a breakChainOnFailure
->attachByName('alpha');

但我想用工厂格式做同样的事情。在这个示例中我可以将 breakChainOnFailure 参数放在哪里:

    $factory = new Factory();
$inputFilter = $factory->createInputFilter(array(
'password' => array(
'name' => 'password',
'required' => true,
'validators' => array(
array(
'name' => 'not_empty',
),
array(
'name' => 'string_length',
),
),
),
));

最佳答案

要回答您的问题,我们需要查看 InputFilter Factory,在那里我们可以找到 populateValidators method .如您所见,对于验证器,它正在规范中寻找 break_chain_on_failure 键。您只需将其添加到您的验证器规范数组中...

$factory = new Factory();
$inputFilter = $factory->createInputFilter(array(
'password' => array(
'name' => 'password',
'required' => true,
'validators' => array(
array(
'name' => 'not_empty',
'break_chain_on_failure' => true,
),
array(
'name' => 'string_length',
),
),
),
));

顺便说一下,FilterChain (here) 和 ValidatorChain (here) 的 attachByName 方法签名不一样.在您的第一个示例中,您正在调用过滤器链上的方法,该方法根本不支持在失败时中断。 (您可能还注意到它是验证器链方法的第三个参数,而不是第二个)

关于zend-framework2 - Zend 框架 2 如何在字段集中使用验证器链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16317815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com