标签: zend-validate

Zend表单验证

我正在使用Zend Form来创建动态表单.

我也有Zend Form验证.

尝试动态删除验证,但没有取得任何成功.

你能帮我删除Zend Validation吗?

贝娄是我删除验证的代码:

$toRemValArray = array();
$toRemValArray[0] = 'ele_4af42ceac7810';

if(isset($_POST['btnPost_x'])){                 
    if ($form->isValid($_POST)) {
        $allElements = $form->getElements();
        foreach($allElements as $val){
            if(in_array('ele_4af42ceac7810',$toRemValArray)){
                $value = $form->getElement($val->getName());
                $value->removeValidator('ele_4af42ceac7810');
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

让我知道我的代码是否有任何问题

谢谢穆罕默德·塔雷克

php zend-framework zend-form zend-validate

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

在Zend中为电子邮件字段设置单个错误消息

我在Zend表单中面临一个关于电子邮件验证的小问题.

我的电子邮件代码字段为

$emailId = new Zend_Form_Element_Text('email');
$emailId->setLabel("Email Adresse")
         ->addFilter('StripTags')
         ->addFilter('StringTrim')
         ->addValidator(new Validator_EmailValidator())
         ->addValidator('NotEmpty')
         ->addValidator(
                        'NotEmpty',
                        TRUE,
                        array('messages' => array(
                              'isEmpty' => 'Please enter your email id.'
                              )
                           )
                        );
Run Code Online (Sandbox Code Playgroud)

目前,它将电子邮件错误消息显示为: 在此输入图像描述

我想要的是在所有这些错误的位置设置单个错误消息,如下所示:

"'abcd @ shdsjah'不是有效的电子邮件ID."

由于我是Zend Framework的新手,我对它并不太了解,虽然我尝试了一些代码,但它们没用.

请帮忙.....

提前致谢....

zend-framework zend-form zend-validate

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

Zend_Validate_Date只是无法正常工作

似乎Zend_Validate_Date只是根本无法正常工作.例如:

$validator = new Zend_Validate_Date(array('format' => 'yyyy'));
Run Code Online (Sandbox Code Playgroud)

这是一个简单的验证器,只能接受四位​​数年份,但$validator->isValid('1/2/3')返回true!真的,Zend?

或者这个怎​​么样:

$otherValidator = new Zend_Validate_Date(array('format' => 'mm/dd/yyyy'));
Run Code Online (Sandbox Code Playgroud)

即使使用上面的代码,也会$otherValidator->isValid('15/13/10/12/1222')返回true!

我正在使用Zend Framework 1.11.9.它只是我还是一个非常糟糕的验证课程?(更新:换句话说,我的代码是否有问题,或者这是一个应该提交的错误?)

php zend-framework zend-validate

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

日期验证程序,使用Zend Framework验证日期是否大于或等于今天

$form = new Zend_Form();

$mockDate = new Zend_Form_Element_Text('mock');

$mockDate->addValidator(???????);

$form->addElements(array($mockDate));

$result = $form->isValid();

if ($result) echo "YES!!!";
else echo "NO!!!";
Run Code Online (Sandbox Code Playgroud)

假设元素采用日期格式.如何确定给定的日期大于或等于今天?

zend-framework zend-form zend-validate

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

正则表达式一个点或一个下划线验证器

这是我的正则表达式

^(([a-z0-9]+)\.([a-z0-9]+)){4,20}$|^(([a-z0-9]+)\_([a-z0-9]+)){4,20}$
Run Code Online (Sandbox Code Playgroud)

它将是一个带有单个点或单个下划线或没有uderline和dot的单词.我也希望这个表达式在4到20个字符之间(它将是db中的用户名)

这个正则表达式

^(([a-z0-9]+)\.([a-z0-9]+))$
Run Code Online (Sandbox Code Playgroud)

还有这个

^(([a-z0-9]+)\_([a-z0-9]+))$
Run Code Online (Sandbox Code Playgroud)

工作成功,但我不知道如何限制字符串长度

:( 请帮忙

我将使用它与zend框架正则表达式验证器...

regex validation zend-validate

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

如何从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
查看次数

添加验证 GreaterThan - Zend Form

<?php
class Form_Audience extends Zend_Form_SubForm
{
    public function init()
    {
        $this->setMethod('post');
        $this->setLegend('Audience Details');

        $this->addElement('text', 'audience_total', array(
            'label'      => 'Audience Total :',
            'required'   => true,
            'filters'    => array('Digits'),
            'size'       => 15,
            'validators' => array(
                    'Digits',
                )
            ));


.... remaining code .....
Run Code Online (Sandbox Code Playgroud)

请帮助修改上述代码以应用 GreaterThan 验证。

谢谢

php zend-framework zend-validate

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

从Zend表单元素清除验证错误消息

我有一个用于捕获电子邮件地址的表单元素.我正在使用Zend_Validate_EmailAddress元素,它会生成不是非常用户友好的错误消息.

我的第一步是指定更加用户友好的新消息,但有些检查根本不适合用户友好的消息.然后我尝试isValid()在表单上运行后清除这些消息并指定我自己的消息,但是我找到的所有函数都不会清除消息.

我尝试了什么和结果

  1. setErrorMessages() - 这里设置的值似乎完全被忽略了
  2. clearErrorMessages() - 似乎被忽略了
  3. setErrors() - 添加我的消息,但保留其他信息

这是在我的自定义视图脚本中显示错误的代码:

<?php if ($this->element->hasErrors()): ?>
    <?php echo $this->formErrors($this->element->getMessages()); ?>
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)

我的解决方案

我授予戈登的答案,因为他的解决方案是最完整的,但是我最终使用addErrorMessage()的元素函数像这样:

$element->addValidator('EmailAddress', false, $this->_validate['EmailAddress'])
        ->addErrorMessage("'%value%' is not a valid email address");

$element->addValidator('Date', false, array('MM/dd/yyyy'))
        ->addErrorMessage("Date must be in MM/DD/YYYY format");
Run Code Online (Sandbox Code Playgroud)

php zend-framework zend-form zend-validate

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

如何根据另一个字段的值验证Zend_Form的字段?

我正在尝试向字段添加自定义验证器.它应该考虑另一个领域的价值.例如,字段A最多应为B + 50%.

我已经实现了一个类Zend_Validate_Interface,但显然Zend Form只将当前字段的值发送给验证器.如何让验证器接收所有内容?

php zend-framework zend-form zend-validate

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

为什么我的Zend验证数字无法识别?

我正在使用Zend Framework创建一个表单来捕获用户的人口统计信息.我正在努力验证两个文本字段的数字.

我在../application/forms/UserDemographics.php中构建我的表单,如下所示:

class Application_Form_UserDemographics extends Zend_Form
    {
        public function init()
        {
            $this->form = new Zend_Form;            
            $dbAdapter = Zend_Registry::get("db");  

                        ...

                        $this->fax_number = new Zend_Form_Element_Text('fax_number');
            $this->fax_number->setLabel('Fax Number')
                ->addFilter('Int')
                ->addFilter('StripTags')
                ->addValidator('Digits');   

                        $this->mobile_number = new Zend_Form_Element_Text('mobile_number');
            $this->mobile_number->setLabel('Mobile Number')
                ->addFilter('Int')
                ->addFilter('StripTags')
                ->addValidator('Digits');

                        ...

                }
         }
Run Code Online (Sandbox Code Playgroud)

我的数据库当前配置如下关于fax_number和mobile_number字段,以便我可以测试是否接受数字:

+-----------------+-------------+------+-----+---------+----------------+
| Field           | Type        | Null | Key | Default | Extra          |
+-----------------+-------------+------+-----+---------+----------------+
...
| fax_number      | varchar(32) | NO   |     | NULL    |              
| mobile_number   | int(15)     | YES  |     | NULL    |              
...
Run Code Online (Sandbox Code Playgroud)

当我在zend表单中的任何一个字段中输入任何数字而不是数字时 …

zend-framework zend-validate

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