Zend Framework 3过滤器/验证内容数组

时间:2018-12-13 09:35:03

标签: zend-framework zend-form zend-framework3

我已经搜索了互联网,还没有正式的文档将输入过滤器应用于ZF3中的数组。

我看到了ZF2 Zend Framework 2 filter / validate array of contents

的答案

任何人都可以帮忙如何将输入过滤器应用于输入数组。

这是我的表单类

class ContactForm extends Form
{
 public function __construct($name = null)
{
    // we want to ignore the name passed
    parent::__construct("contactForm");
    $this->addInputFilters();
}

public function init()
{
    $this->add([
        "name"                       => "Type[]",
        "type"                       => "text",
        "attributes"                 => [
            "class"                  => "form-control",
        ],
    ]);
}
private function addInputFilters() {
    $inputFilter->add([
        "name"                       => "Type[]",
        "required"                   => true,
        "filters"                    => [],
        "validators"                 => [
            [
                "name"               => "StringLength",
                "options"            => [
                    "min"            => 3,
                    "max"            => 100,
                ],
            ],
        ],
    ]);
}

1 个答案:

答案 0 :(得分:0)

此页面为您提供了答案https://olegkrivtsov.github.io/using-zend-framework-3-book/html/en/Collecting_User_Input_with_Forms/Adding_Form_Filtering_and_Validation_Rules.html

我看到的第一个区别是方法名称不是addInputFilters而是addInputFilter,不带's'。

在addInputFilter中,您也没有使用

获得表单输入过滤器
  

$ inputFilter = $ this-> getInputFilter();

实际上,您在示例中实际上是对未定义的变量调用“添加”,但是您发布的示例可能不是有效的代码。

此外,如果要验证集合(哪种数据将要验证'Type []'?),请使用“集合”输入过滤器,并为其分配输入过滤器以验证每个条目。