php - 如何在没有表单的情况下对模型运行 ZF2 验证?

标签 php validation zend-framework zend-framework2 zend-form

我正在尝试对 ZF2 中的类运行验证。我遵循了 Album 示例并了解验证器如何使用表单,但我如何针对数组运行它?下面是示例中的代码。

 $form->setInputFilter($album->getInputFilter());
 $form->setData($request->getPost());
 if ($form->isValid()) {

在我的例子中,我没有表单,但有一组数据要交换给类(class)。我如何验证这个数组?如何运行 isValid 函数?我需要将数组绑定(bind)到新表单然后运行验证吗?似乎会有更简洁的方法。

非常感谢, 米

最佳答案

您可以创建一个扩展到 Zend\InputFilter\InputFilter

的过滤器
use Zend\InputFilter\InputFilter;
class AlbumFilter extends InputFilter {
    public function __construct() 
    {
        $this->add(array(
                'name'     => 'title',
                'required' => true,
                'validators' => array(
                    array(
                        'name' => 'NotEmpty',
                        'options' => array(
                            'messages' => array(
                                NotEmpty::IS_EMPTY => 'Title is required.',
                            ),
                        ),
                    ),
                ),
            ));
    }

然后在你的 Controller 中:

$AlbumFilter = $this->getServiceLocator()->get('AlbumFilter'); // assuming you have added AlbumFilter in your Module.php
$AlbumFilter->setData($data);
if ($AlbumFilter->isValid()) {
    // do something
}

关于php - 如何在没有表单的情况下对模型运行 ZF2 验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34957769/

相关文章:

validation - 你验证你的 URL 变量吗?

java - Spring:根据 XSD 模式验证 REST Controller

zend-framework - Zend 框架 SEO 技巧

php - 单个查询检查结果

php - http post方法是如何实现的?

Php脚本运行正常,但没有在数据库中创建表

php - 如何在单击刷新按钮时重新加载 Zend Captcha 图像?

php - 如何检查一个IP地址是否在PHP中的两个IP范围内?

javascript - 在发送 ajax 提交之前验证表单

php - 使用 Zend 测试设置 PHPUnit