标签: zend-form-element

Zend验证器和错误消息:addValidator和addErrorMessage

如果我有一个附加了多个验证器的表单元素(在本例中为3),addErrorMessage当每个唯一验证器失败时,如何使用它来创建自定义错误消息.有没有办法为每个验证器添加自定义消息?

$element = new Zend_Form_Element_Text()...
$element->....
        ->addValidator(...)
        ->addValidator(...)
        ->addValidator(...)
        ->addErrorMessage()
Run Code Online (Sandbox Code Playgroud)

php zend-framework zend-form zend-form-element

5
推荐指数
2
解决办法
1万
查看次数

Zend Framework notEmpty验证器setRequired

我看了其他问题 /谷歌搜索了这个.我的问题是,当我提交带有notEmpty验证器的空文本框的表单时,它不会触发错误.

首先,我想看看我是否明白之间的差别notEmptysetRequired.据我所知,notEmpty如果提交了一个元素并且值为空,验证器会给出错误.也就是说,如果一个条目不存在于POST数据存在(形式),那么它不如果不是元素产生一个错误需要.喜欢它只在元素设置时运行.除非另有说明,否则该setRequired方法将notEmpty在幕后自动添加验证器.这可确保元素的条目必须存在且不能为空.正确?

现在,我尝试在我添加notEmpty验证器的表单中使用此逻辑,如下所示:

$username = new Zend_Form_Element_Text('txtUsername');
$username->addValidator(new Zend_Validate_NotEmpty(), true);
Run Code Online (Sandbox Code Playgroud)

对于其他文本字段也是如此.如果我在没有输入值的情况下提交表单,我的POST数据如下所示:

(
    [txtUsername] => 
    [txtPassword] => 
    [txtRepeatPassword] => 
)
Run Code Online (Sandbox Code Playgroud)

但是,isValid仍然会计算true并且不会生成错误消息.为什么?notEmpty由于元素在POST数据中有条目,验证器是否应该确定值为空?如果我使用setRequired(true)它,它的工作方式我想要的.我只是想知道,当值为空字符串时,它确定用户名不为空.:-)

提前致谢.

php zend-framework zend-form zend-form-element

4
推荐指数
1
解决办法
3866
查看次数

如何从Zend Framework 2中的表单元素/表单元素ValidatorChain中删除验证器?

我在SO上读到了这个问题:" 如何在zend framework2中禁用inArray验证器表单 "并试图找到它,但找不到任何方法来分离/删除InArrayValidator.但这InArray只是一个验证者.那么如何从表单元素的验证器列表中删除验证器呢?

我可以得到验证器:

$myElement = $form->getInputFilter()->get('city');
$validatorChain = $cityElement->getValidatorChain();
$validators = $validatorChain->getValidators();
Run Code Online (Sandbox Code Playgroud)

然后可能可以使用验证器取消设置数组元素,我想删除,然后将结果数组传递回Input对象和表单元素.但它真的很脏,肯定不是推荐的方式.

那么如何从表单元素中删除验证器呢?

validation zend-validate zend-form-element zend-framework2

4
推荐指数
1
解决办法
8618
查看次数

文件上传:大小验证器或setMaxFileSize()

对于Zend_Form_Element_File,添加Size验证器和使用setMaxFileSize之间有什么区别吗?

$file->addValidator('Size', false, 1000000);

$file->setMaxFileSize(1000000);
Run Code Online (Sandbox Code Playgroud)

php zend-framework zend-form zend-form-element

3
推荐指数
1
解决办法
2093
查看次数

如何在Zend Framework 1.11中向我的输入添加所需的错误消息?

我在forms/video.php中有以下代码片段.但我不知道在哪里添加验证消息所需.

$this->addElement('text','name', array(
        'label'=>'Name',
        'maxlength'=>20,
        'class'=>'name',
        'required'=>true,
        'filters'=>array('StringTrim'),
        'decorators'=>array(
            'ViewHelper',
            'Errors',
            array(array('control'=>'HtmlTag'), array('tag'=>'div', 'class'=>'fieldcontrol')),
            array('Label', array('tag'=>'div', 'class'=>'name')),
            array(array('row'=>'HtmlTag'), array('tag' => 'div', 'class'=>'row')),
        )
    ));
Run Code Online (Sandbox Code Playgroud)

我想把它设置为"请输入你的名字"之类的东西,而不是"价值是必需的而且不能为空".

php zend-framework zend-form zend-validate zend-form-element

3
推荐指数
1
解决办法
5433
查看次数

ZF2表单中的按钮内容

如何编辑Button元素(ZF2表单)的按钮内容?我可以设置一个标签,但我想在其中插入一些HTML代码.

    $this->add(array(
        'type' => 'Button',
        'name' => 'submit',
        'options' => array(
            'label'   => 'Modifica',
        ),
        'attributes' => array(
            'type'  => 'submit',
            'class' => 'btn btn-warning'
        )
    ));
Run Code Online (Sandbox Code Playgroud)

谢谢

zend-form zend-form-element zend-framework2

3
推荐指数
2
解决办法
6432
查看次数

Zend表单更改元素在运行时需要将选项设置为false

我有一个表单,有两个文件上传元素.它像是

$data_file_one = $this->createElement('file','data_file_one');
            $data_file_one->setRequired(true)
                            ->addValidator('Extension', false, 'csv')
                            ->setDestination($filepath);
Run Code Online (Sandbox Code Playgroud)

两者都设置为必需true.我使用相同的表单来发布新帖子和编辑帖子.当它用于编辑时,文件上传不应该是强制性的,必须设置为必需的false.所以,我需要改变

setRequired(true)to setRequired(false)

如果调用编辑操作来加载表单并更改此元素选项,我该怎么办?

提前致谢.

zend-framework zend-form zend-file zend-form-element

2
推荐指数
1
解决办法
2571
查看次数

将csrf添加到表单中是不是有根本错误?

如果用户打开两种相同类型的表单,则会出现csrf错误,

我自己是一个具有机器人心态的多才多艺,多任务,绝对的野兽习惯于打开多个标签并以疯狂的方式做事,csrf检查将我变成了一个正常的人.

关于这个还能做什么?

对不起,忘了提到这是关于zend framework的csrf元素

zend-framework csrf zend-form zend-form-element csrf-protection

2
推荐指数
1
解决办法
262
查看次数

Zend EmailAddress验证返回多个错误

当用户输入无效的电子邮件地址时,我无法使Zend_Validate_EmailAddress只显示1条错误消息.代码是

$email = new Zend_Form_Element_Text('email');
$email->setLabel('Email: ')
    ->addFilter('StringTrim')
    ->addFilter('StripTags')
    ->addValidator('EmailAddress',true, array(... error msgs ...))
    ->addValidator(new Zend_Validate_Db_NoRecordExists(array( ... db + table + col details ... ),true, array(... error msgs ...)))
    ->setRequired(true);
$this->addElement($email);
Run Code Online (Sandbox Code Playgroud)

当用户输入无效的电子邮件时user@email(如果没有tld),它会显示多个错误,例如

'email' is no valid hostname for email address 'user@email'  
'email' does not match the expected structure for a DNS hostname  
'email' appears to be a local network name but local network names are not allowed  
Run Code Online (Sandbox Code Playgroud)

我无法使用,addErrorMessage('...')因为我需要为无效的电子邮件显示不同的消息,并且电子邮件已存在于数据库中.因此,任何想法如何使EmailAddress验证只返回1错误消息.

zend-framework zend-form zend-validate zend-form-element

2
推荐指数
1
解决办法
2002
查看次数

使用ViewScript装饰器时覆盖Zend_Form无线电元素上的分隔符

我正在使用ViewScripts来装饰我的表单元素.使用无线电元素时,通常可以覆盖分隔符,但在使用ViewScript时会忽略覆盖.

当我使用下面的调用和ViewScript时,无线电元素用'<br />'而不是我指定的空格分隔.如果保留默认装饰器,则覆盖工作.

$this->addElement('radio', 'active', array(
    'disableLoadDefaultDecorators' => true,
    'decorators' => array(array('ViewScript', array('viewScript' => 'form/multi.phtml'))),
    'label' => 'Active',
    'required' => true,
    'multiOptions' => array('1' => 'Yes', '0' => 'No',),
    'value' => '1',
    'separator' => ' ',
    'filters' => array(),
    'validators' => array(),
));
Run Code Online (Sandbox Code Playgroud)

ViewScript:

<div class="field <?php echo strtolower(end(explode('_',$this->element->getType()))) ?><?php if($this->element->hasErrors()): ?> errors<?php endif; ?>" id="field_<?php echo $this->element->getId(); ?>">
    <?php if (0 < strlen($this->element->getLabel())): ?>
        <?php echo $this->formLabel($this->element->getName(), $this->element->getLabel());?>
    <?php endif; ?>
    <span class="value"><?php echo $this->{$this->element->helper}(
        $this->element->getName(),
        $this->element->getValue(),
        $this->element->getAttribs(),
        $this->element->getMultiOptions() …
Run Code Online (Sandbox Code Playgroud)

zend-framework zend-form zend-decorators zend-view zend-form-element

1
推荐指数
2
解决办法
7497
查看次数

如何从内容中单独打印组显示?

我正在使用Zend Framework和Zend_Form来呈现我的表单.但是当我发现很难定制它时,我决定单独打印元素.

问题是,我不知道如何在显示组内打印单个元素.我知道如何打印我的显示组(字段集),但我需要在其中添加一些东西(比如<div class="spacer"></div>取消float:left.

有没有办法只显示没有内容的组,所以我可以自己单独打印它们?

谢谢您的帮助.

html css zend-framework zend-form zend-form-element

1
推荐指数
1
解决办法
1069
查看次数

ZF2表单元素描述

在ZF1表单的元素有一个setDescription是被输出作为方法<p>description here</p>鉴于.... ZF2显得那么我的问题是我怎样才能添加说明,形成元素没有这个方法?

这是我的看法:

<div>
    <?
    $form = $this->form;
    $form->prepare();
    echo $this->form()->openTag($form);

    foreach ($form->getElements() as $el) {
        ?>
        <div class="form_element">
            <?=$this->formRow($el);?>
        </div>
        <?
    }
    echo $this->partial('system/form/buttons_form_part.phtml', array('form' => $form));
    echo $this->form()->closeTag();
    ?>
</div>
Run Code Online (Sandbox Code Playgroud)

zend-form zend-form-element zend-framework2

0
推荐指数
1
解决办法
2243
查看次数