Php Zend Framework 2-自定义表单验证

Php Zend Framework 2-自定义表单验证,php,validation,zend-framework2,Php,Validation,Zend Framework2,我需要一个自定义表单验证。所以我写了一个类似的函数 到目前为止还不错。但是我真的很难把PHP文件/类放在哪里 它应该把它放在vendor/下,作为一个lib,这似乎是合乎逻辑的。我使用了以下路径:vendor/company/Validator/MyValidator.php。但是我不知道如何把我的班级包括进去 有谁能给我一个简短的如何设置供应商模块或使用自定义验证器所需的任何东西吗 互联网上有很多教程,但大多数都涉及验证逻辑,而不是Zend的基础知识 谢谢 编辑: 我找到并配置了我的代码,如下

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

到目前为止还不错。但是我真的很难把PHP文件/类放在哪里

它应该把它放在vendor/下,作为一个lib,这似乎是合乎逻辑的。我使用了以下路径:vendor/company/Validator/MyValidator.php。但是我不知道如何把我的班级包括进去

有谁能给我一个简短的如何设置供应商模块或使用自定义验证器所需的任何东西吗

互联网上有很多教程,但大多数都涉及验证逻辑,而不是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,
                      ),
                  ),
                ),
        )));
        ...
我的代码如下:

        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,
                      ),
                  ),
                ),
        )));
        ...

当我尝试提交表单时,我看到部分验证程序代码为纯文本,并得到一个致命错误,即找不到该类…

我现在将假定为目录结构

供应商名称:MyStuff

FQCN:MyStuff\Validator\AwesomeValidator

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

鉴于Zend Framework 2遵循自动加载的路径,您需要将自动加载路径添加到供应商的自动加载程序中。ZF2使用Composer来处理自动加载。当您通过Composer安装自己的供应商时,这将自动完成。如果需要手动执行此操作,可以在composer.json中执行


我希望这将为您提供足够的工作空间。

我现在假设使用目录结构

供应商名称:MyStuff

FQCN:MyStuff\Validator\AwesomeValidator

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

鉴于Zend Framework 2遵循自动加载的路径,您需要将自动加载路径添加到供应商的自动加载程序中。ZF2使用Composer来处理自动加载。当您通过Composer安装自己的供应商时,这将自动完成。如果需要手动执行此操作,可以在composer.json中执行


我希望这将为您提供足够的工作空间。

使用composer的另一种方法是更手动的方法,这可能会避免您的include问题。此页面上的注释可能有助于向您显示手动放置物品的位置:

使用composer的另一种方法是更手动的方法,它可能会避免您的include问题。此页面上的注释可能有助于向您显示手动放置物品的位置:

这帮了大忙!现在最后一件事:如何在ie Entity.php模型中使用验证器。我坚持学习创建InputFilter的教程。。。我会更新我的帖子!在没有看到自定义装饰器的代码的情况下,我可以建议执行$cv=newcustomvalidatorarray'min'=>1;然后“验证器”=>数组$cvmy错误。。。最后只是一个愚蠢的错误。谢谢你的帮助!每次我使用composer时,我的手册都会被删除。你能帮我一下,告诉我如何永久安装它吗?谢谢!这是一个作曲家配置的东西。我建议用两个标签打开另一个问题,zend-framework2和composer,这样你就能得到更好的帮助!这帮了大忙!现在最后一件事:如何在ie Entity.php模型中使用验证器。我坚持学习创建InputFilter的教程。。。我会更新我的帖子!在没有看到自定义装饰器的代码的情况下,我可以建议执行$cv=newcustomvalidatorarray'min'=>1;然后“验证器”=>数组$cvmy错误。。。最后只是一个愚蠢的错误。谢谢你的帮助!每次我使用composer时,我的手册都会被删除。你能帮我一下,告诉我如何永久安装它吗?谢谢!这是一个作曲家配置的东西。我建议用两个标签打开另一个问题,zend-framework2和composer,这样你就能得到更好的帮助!