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);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行