duanluan2047 2018-03-25 09:14
浏览 33
已采纳

Zend Framework多输入一个验证器

I'm designing a form with 3 file upload fields in Zend 2, is it possible to write one validator for 3 fields? I want to use this validator for 3 fields

 $inputFilter->add([
                'type'     => 'Zend\InputFilter\FileInput',
                'name'     => 'foto1',  // Element's name.
                'required' => true,    // Whether the field is required.
                'validators' => [      // Validators.
                    ['name'    => 'FileUploadFile'],
                    [
                        'name'    => 'FileMimeType',                        
                        'options' => [                            
                            'mimeType'  => ['image/jpeg', 'image/png' ]
                        ]
                    ],
                    ['name'    => 'FileIsImage'],
                    [
                        'name'    => 'FileImageSize',
                        'options' => [
                            'minWidth'  => 128,
                            'minHeight' => 128,
                            'maxWidth'  => 4096,
                            'maxHeight' => 4096
                        ]
                    ],
                ],
                'filters'  => [        // Filters.
                    [
                        'name' => 'FileRenameUpload',
                        'options' => [  
                            'target' => './data/upload',
                            'useUploadName' => true,
                            'useUploadExtension' => true,
                            'overwrite' => true,
                            'randomize' => false
                        ]
                    ]
                ]
            ]); 
  • 写回答

1条回答 默认 最新

  • douan2907 2018-03-25 10:42
    关注

    You should take a look at the ValidatorChain's.

        // Creating a re-usable chain
        $chain = new ValidatorChain();
        $chain->attachByName('FileMimeType', [
            'mimeType'  => ['image/jpeg', 'image/png' ]
        ]);
        $chain->attachByName('FileImageSize', [
            'minWidth'  => 128,
            'minHeight' => 128,
            'maxWidth'  => 4096,
            'maxHeight' => 4096
        ]);
        $chain->attachByName('FileRenameUpload', [
            'target' => './data/upload',
            'useUploadName' => true,
            'useUploadExtension' => true,
            'overwrite' => true,
            'randomize' => false
        ]);
    
        $this->get('foto1')->setValidatorChain($chain);
        $this->get('foto2')->setValidatorChain($chain);
        $this->get('foto3')->setValidatorChain($chain);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 MATLAB yalmip gurobi求解器
  • ¥15 关于#stm32#的问题:第一张图是发送数据代码,第二第三张图是接收数据并进行DAC转换的函数,若用串口一接收数据并进行DAC转换,主函数代码该怎么写
  • ¥20 hc130怎么读写内部flash存储信息
  • ¥15 Axure rp9注册与登录交互
  • ¥15 我下载图形界面重启完就变成这样了,打字也打不了,动也动不了,该怎么解决(操作系统-centos)
  • ¥15 VBA中在窗体中遍历所有checkbox控件,提取出被选中的checkbox的caption值
  • ¥15 在Ubuntu上有什么命令,或者是系统文件能告诉我链接nvme ssd的pcie槽位是不是支持热插拔功能?
  • ¥15 ansys license许可证问题
  • ¥20 QQ号和密码都能正常登录微信 QQ号和密码登录微信显示密码错误
  • ¥15 单片机RTOS Kernel与应用分离开发,Kernel如何调起应用?