Zend框架2 - 自定义表单验证(Zend Framework 2 - Custom Form

2019-08-04 06:45发布

我需要一个自定义表单验证。 所以我写了类似的功能这一个。

到现在为止还挺好。 但是我真的有问题放在哪里PHP文件/类。

它应该把它放在供应商/因为这似乎合乎逻辑的一个lib。 我用这个路径:供应商/公司/识别/ MyValidator.php。 但我无法弄清楚如何将我的课。

谁能给我一个简短的how-to设立供应商模块或任何需要使用一个自定义的验证?

有很多在互联网上的教程,但大多处理验证的逻辑,而不是“基础”为Zend的。

谢谢!

编辑:

我发现这个链接 ,并配置了我的代码如下:

我的代码如下:

        use MyStuff\Validator\CustomValidator as CustomValidator;
        ...
        $inputFilter->add($factory->createInput(array(
            'name'     => 'zip',
            'required' => false,
            'filters'  => array(
                array('name' => 'Int'),
            ),
             'validators' => array(
                  array(
                      'name' => array( new CustomValidator ),
                      'options' => array(
                          'min' => 1,
                      ),
                  ),
                ),
        )));
        ...

当我尝试提交我看到的验证码为纯文本部分的形式,并得到一个致命的错误,类找不到...

Answer 1:

我现在将承担的目录结构。

供应商名称: MyStuff

FQCN: MyStuff\Validator\AwesomeValidator;

文件路径: ./vendor/mystuff/library/MyStuff/Validator/AwesomeValidator

鉴于Zend框架2遵循PSR-0标准的自动加载,你需要将自动加载路径添加到您的供应商自动加载。 ZF2使用Composer来处理的自动加载。 当您通过作曲家安装自己的供应商,这是自动完成的。 如果您需要手动来此,你做这里面composer.json

"autoload": {
    "psr-0": {
        "Mystuff\\": "vendor/mystuff/library/"
    }
}

我希望这会给你足够的工作。



Answer 2:

使用作曲家的替代方法是一个更手动方法可能避免你的问题包括。 此页面上的意见可能有助于您在何处手动放东西: http://framework.zend.com/manual/2.0/en/modules/zend.validator.writing-validators.html



文章来源: Zend Framework 2 - Custom Form Validation