标签: zend-validate

在en_US语言环境中使用Zend_Validate_Date验证YYYY-MM-DD格式的字符串

我正在YYYY-MM-DD使用格式验证用户输入的日期字符串Zend_Validate::is($value,'Date').

此调用创建此层次结构:

Zend_Validate::is()
Zend_Validate_Date->isValid()
Zend_Date::isDate()
Zend_Locale_Format::getDate()
Zend_Locale_Format::_parseDate() 
Run Code Online (Sandbox Code Playgroud)

最后,它失败了这个例外:

Zend_Locale_Exception: Unable to parse date '2009-09-08' using 'MMM d, y' (M <> y) in /usr/share/php/Zend/Locale/Format.php on line 1001
Run Code Online (Sandbox Code Playgroud)

我使用en_US作为我的应用程序区域设置.如何配置Zend_Validate以接受此日期格式?例如,是否可以更改日期的区域设置格式?

php zend-framework zend-validate

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

Zend更改验证错误行为:将元素包装在另一个标记中

我为电子邮件设置了验证器,因此它不能为空.

这是zend_form生成的常用形式的标记:

<dt id="email-label"><label class="required" for="email">Email</label></dt>
<dd id="email-element">
   <input type="text" value="" id="email" name="email">
</dd>
Run Code Online (Sandbox Code Playgroud)

验证失败时,zend_form ul class="errors"在dd中添加一个新内容

<dt id="email-label"><label class="required" for="email">Email</label></dt>
<dd id="email-element">
   <input type="text" value="" id="email" name="email">
   <ul class="errors">
      <li>Value is required and can't be empty</li>
   </ul>
</dd>
Run Code Online (Sandbox Code Playgroud)

如何稍微更改此默认行为,以便整个dt dd包装在单个psomething我可以添加错误类?我的猜测是我需要指定zend_form在元素出错时如何表现.

php zend-framework zend-form zend-validate

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

php中电话号码的正则表达式

我正在对电话号码使用 Zend 表单验证。我想,用户应该输入以下格式的电话号码:

“+91-151-1234567”、“01234567891”、“+912345678901”

所以我使用这个正则表达式:

"^(?:\+?([0-9]{3})\)?[-. ]?\(?([0-9]{3})\)?[-. ]?([0-9]{10})[-. ]$"
Run Code Online (Sandbox Code Playgroud)

但它不起作用。它正在生成错误:

致命错误:未捕获的异常 'Zend_Validate_Exception' 带有消息 '内部错误匹配模式 '^(?:+?([0-9]{3}))?[-. ]?(?([0-9]{3}))?[-. ]?([0-9]{10})[-. ]$' 对 /var/www/html/allindiazend/library/Zend/Validate/Regex.php:117 中的值 '+91-151-3297154'' 堆栈跟踪:#0 /var/www/html/allindiazend/library /Zend/Validate.php(98): Zend_Validate_Regex->isValid('+91-151-3297154')

1 /var/www/html/allindiazend/library/Zend/Validate.php(98):

Zend_Validate->isValid('+91-151-3297154')

2 /var/www/html/allindiazend/library/Zend/Filter/Input.php(932):

Zend_Validate->isValid('+91-151-3297154')

3 /var/www/html/allindiazend/library/Zend/Filter/Input.php(800):

Zend_Filter_Input->_validateRule(Array)

4 /var/www/html/allindiazend/library/Zend/Filter/Input.php(688):

Zend_Filter_Input->_validate() #5 /var/www/html/allindiazend/library/Zend/Filter/Input.php(430): Zend_Filter_Input->_process() #6 /var/www/html/allindiazend/application/controllers /StaticController.php(148): Zend_Filter_Input->isValid() #7 /var/www/html/allindi 在 /var/www/html/allindiazend/library/Zend/Validate/Regex.php 中的第 117 行

任何人都可以帮我做这个。

先感谢您。

php regex string zend-framework zend-validate

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

Zend validate将"禁用"输入字段解释为空

我再次遇到一个我似乎无法理解的问题.我有一个这样的表单元素:

$this->add(array(
        'type'    => 'datetime',
        'name'    => 'modifiedTime',
        'options' => array(
            'label' => 'Modified Time',
            ),
         'attributes' => array(
            'disabled' => 'disable',
            ),

        ));
Run Code Online (Sandbox Code Playgroud)

通过我的实体(我正在使用学说),这个确实被正确填充:

/**
 * @ORM\Column(type="datetime", nullable=true, name="modified_time") 
 * 
 * @Form\Exclude()
 */
protected $modifiedTime;

public function getModifiedTime(){
    return $this->modifiedTime;
}

public function populate($data)
{
$this->modifiedTime = date_create($data['modifiedTime']);
}
Run Code Online (Sandbox Code Playgroud)

只要未设置"禁用"属性,此工作就完全正常.但是一旦我得到验证错误声称"值是必需的并且不能为空"事件,则在输入中设置值.

有任何想法吗?

zend-validate zend-framework2

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

Zend语法解释 - %value%是什么意思?

我在http://framework.zend.com/manual/en/zend.validate.writing_validators.html上看到了语法

案例 - %value%意味着什么?

  protected $_messageTemplates = array(
    self::FLOAT => "'%value%' is not a floating point value"
  );
Run Code Online (Sandbox Code Playgroud)

谢谢

php zend-framework zend-form zend-validate

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