标签: zend-form-element

zend表单电子邮件验证

我有以下代码为用户的电子邮件地址生成输入字段

$email = new Zend_Form_Element_Text('email');
$email->setLabel('Email:')
    ->addFilters(array('StringTrim', 'StripTags'))
    ->addValidator('EmailAddress')
    ->addValidator(new Zend_Validate_Db_NoRecordExists(
                                                        array(
                                                                'adapter'=>Zend_Registry::get('user_db'),
                                                                'field'=>'email',
                                                                'table'=>'tbl_user'
                                                                )))
    ->setRequired(true)
    ->setDecorators(array(
                            array('Label', array('escape'=>false, 'placement'=>'append')),
                            array('ViewHelper'),
                            array('Errors'),
                            array('Description',array('escape'=>false,'tag'=>'div')),
                            array('HtmlTag', array('tag' => 'div')),
                        ));
$this->addElement($email);
Run Code Online (Sandbox Code Playgroud)

现在的问题是,如果用户为电子邮件输入无效的主机名,则会产生3个错误.假设用户输入'admin @ l'作为电子邮件地址,错误将是
*'l'没有电子邮件地址的有效主机名'admin @ l'
*'l'与DNS主机名
*' 的预期结构不匹配l'似乎是本地网络名称,但不允许使用本地网络名称

我只是希望它只提供一个自定义错误而不是所有这些.如果我通过addErrorMessage方法设置错误消息"无效的电子邮件地址",它将再次针对db_validation生成相同的消息.

zend-framework email-validation zend-form zend-form-element

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

如何以zend形式取​​消元素

我有一种形式,我有很多元素.我在许多地方使用表格.我有一个元素,file那就是:

$file= new Zend_Form_Element_File('merchantLogo');
        $file->setDestination("application_data/merchant/logo/original/");
        $file->addValidator('Count', false, 1);
        $file->addValidator('Extension', false, 'jpg,png,gif,jpeg');
        $file->setDecorators(array('ViewHelper','Errors'));
Run Code Online (Sandbox Code Playgroud)

现在,我想问一下,我怎样才能取消这种形式的任何元素.我想要这个,因为虽然在我的一个动作上我没有使用这个元素,但是这个元素正在创造问题.那么如何取消任何元素呢?

zend-framework zend-form zend-form-element

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

一旦表单对象已经创建,如何在特定位置添加zend表单元素?

我创建了一个扩展zend表单的user_form类,它有4个元素用户名,密码,csrf的哈希值和最后一个提交按钮.

创建user_form的对象呈现所有这四个元素.

在控制器操作中验证登录后,我检查失败尝试,并在一些修复失败尝试次数后,我想在提交按钮之前添加zend captch.

我添加了captcha元素,并在提交后按钮后附加.

如何在特定位置添加zend元素?或者如何在提交按钮之前添加它?

还让我知道我的方式是正确的吗?等待你的回复.谢谢...

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

7
推荐指数
2
解决办法
7716
查看次数

Zend Framework 1.10中Captcha元素的自定义错误消息

我正在尝试将自己的自定义错误消息设置到我的Captcha上,但由于某种原因它会回显两次.

这是我的验证码:

$captcha = new Zend_Form_Element_Captcha(
  'captcha', // This is the name of the input field
  array('captcha' => array(
      // First the type...
      'captcha' => 'Image',
      // Length of the word...
      'wordLen' => 6,
      // Captcha timeout, 5 mins
      'timeout' => 300,
      // What font to use...
      'font' => 'images/captcha/font/arial.ttf',
      // URL to the images
      'imgUrl' => '/images/captcha',
      //alt tag to keep SEO guys happy
      'imgAlt' => "Captcha Image - Please verify you're human"
  )));
Run Code Online (Sandbox Code Playgroud)

然后设置我自己的错误消息:

$captcha->setErrorMessages(array('badCaptcha' => 'My message …
Run Code Online (Sandbox Code Playgroud)

zend-framework zend-form-element

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

Zend Framework 2 DateSelect/MonthSelect格式

随着最新发布的Zend Framework 2版本,增加了两个新的表单元素 ; DateSelectMonthSelect.我想使用前者,它增加了三个选择; 日,月和年.但是,我有一个问题格式化输出我想要的 - 而且,没有这方面的文档!

我正在将表单元素添加到我的表单中(从此页面中获取):

$this->add(array(
    'type'    => 'Zend\Form\Element\DateSelect',
    'name'    => 'birthDate',
    'options' => array(
        'label'               => 'Date',
        'create_empty_option' => true,
        'day_attributes'      => array(
            'data-placeholder' => 'Day',
            'style'            => 'width: 20%',
        ),
        'month_attributes'    => array(
            'data-placeholder' => 'Month',
            'style'            => 'width: 20%',
        ),
        'year_attributes'     => array(
            'data-placeholder' => 'Year',
            'style'            => 'width: 20%',
        )
    )
));
Run Code Online (Sandbox Code Playgroud)

对于输出,我这样做:

echo $this->formDateSelect($form->get('birthDate'));
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何控制选择的格式化方式.例如,它们目前以这种形式输出:[month] [day], [year].我想改变两件事; 首先,我想切换日期和月份,其次,我想摆脱逗号.

助手使用IntlDateFormatter该类来格式化选择.在源代码中,我注意到在调用[链接到源代码]时可以使用 …

php zend-form zend-form-element zend-framework2

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

如何使用addElement()在Zend表单元素的标签中允许html标签?

我是Zend的新手,我已经获得了一个调整项目.我想在我的表单元素的标签中添加html,但我似乎无法做到正确.

这就是我所拥有的:

$this->addElement('text', 'school_name', array(
    'filters' => array('StringTrim'),
        'validators' => array(
            array('StringLength', false, array(0, 150)),
        ),
    'required' => true,
    'label' => 'Name* :<img src="picture.png">,
    'size' => '90',
));
Run Code Online (Sandbox Code Playgroud)

当然,<img src="picture.png">文本会被转义并显示整个字符串.

我已经读过我需要以'escape' => false某种身份使用但我无法弄清楚在特定情况下在何处/如何使用它.

任何帮助都会很棒.谢谢!

zend-framework escaping zend-decorators zend-form-element

6
推荐指数
2
解决办法
6069
查看次数

将HTML标签附加或预先添加到Zend表单元素

出于样式的目的,我需要<div>在一个元素的开头放置一个开口,在另一个元素</div>的末尾放置一个结束标记.查看HtmlDecorator的文档,我似乎无法弄清楚如何正确使用它,或者这是否是正确的装饰器.为了达到这个目的,必须创建自己的装饰器似乎很浪费.

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

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

扩展Zend_form_element_select,错误消失

我有一个下拉菜单Element_Select,我正在变成一个自定义元素,Element_SelectCustom以便我可以直接用值填充它.这是自定义元素

<?php

require_once ('Zend/Form/Element/Select.php');

class Zend_Form_Element_SelectCustom extends Zend_Form_Element_Select
{
    public function init() {
        $this->addMultiOptions(array(
            'NULL' => 'Choose Value',
            '1' => 'First',
            '2' => 'Second',
            '3' => 'Third',
        ));
        return parent::init();
    }
Run Code Online (Sandbox Code Playgroud)

问题是,当我将新的自定义元素添加到表单并将其设置为required时,当我不选择值时,它不会触发错误.

$test = new Zend_Form_Element_SelectCustom('test');
$test->setRequired(true);
$this->addElement($test);
Run Code Online (Sandbox Code Playgroud)

我不知道它有什么问题.是否可能需要重新启动另一种方法?

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

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

Zend_Form_Element_File不需要时在验证时返回false

我有一个Zend Form,其中包含一个文件元素。

    $this->addElement('file', 'image', array(
        'label'         => 'Upload Image:',
        'destination'   => APPLICATION_PATH . '/tmp/',
        'validators'    => array(
            array('count', true, array(
                'min'   => 1,
                'max'   => 1,
                'messages'  => array(
                    Zend_Validate_File_Count::TOO_FEW =>
                        'You must upload an image file',
                    Zend_Validate_File_Count::TOO_MANY =>
                        'You can only upload one image file'))),
            array('extension', true, array(
                'extention' => 'jpg,png,gif',
                'messages'  => array(
                    Zend_Validate_File_Extension::NOT_FOUND =>
                        'The file has an invalid extention (jpg,png,gif only)',
                    Zend_Validate_File_Extension::FALSE_EXTENSION =>
                        'The file has an invalid extention (jpg,png,gif only)'))),
            array('imageSize', true, array(
                'minheight' => …
Run Code Online (Sandbox Code Playgroud)

zend-framework zend-form zend-form-element

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

Zend Framework 2 - 删除的表单元素导致验证失败

我在几个地方使用某种形式.在其中一个中,我需要忽略在验证后以编程方式设置的表单元素.

因为它只是一个例外,我不想创建一个新的表单.所以我想,我只是在控制器中删除这个元素,如:

$myForm->remove('myElement');
Run Code Online (Sandbox Code Playgroud)

问题是表单现在不会验证.我没有得到任何错误,但$myForm->isValid()只是返回一个空值.

我有什么想法可能做错了吗?

谢谢!

php validation zend-form zend-form-element zend-framework2

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