繁体   English   中英

NotEmpty验证程序不适用于自定义表单元素

[英]NotEmpty validator doesn't work with custom form element

我为电话号码创建了一个自定义表单元素。 它由国际前缀的选择和实际电话号码的文本组成。

class Mylib_Form_Element_Phone extends Zend_Form_Element_Xhtml
{
    public $helper = 'formPhone';
    protected $prefix;
    protected $phone;

    public function setValue($value)
    {
        if (is_null($value)) {
            return;
        }

        if (!is_array($value) || !isset($value['prefix']) || !isset($value['phone'])) {
            throw new Exception('Invalid phone value provided');
        }
        $this->prefix = $value['prefix'];
        $this->phone = $value['phone'];
    }

    public function getValue()
    {
        return array(
            'prefix' => $this->prefix,
            'phone' => $this->phone
        );
    }

    public function isValid($value, $context = null)
    {
        $valid = parent::isValid($value, $context);

        if ($valid && !empty($this->phone) && empty($this->prefix)) {
            $this->addError('PHONE_PREFIX_REQUIRED');
            return false;
        }

        return $valid;
    }
}

我的自定义验证错误工作正常,但是如果使用'required' => true创建元素,并且我将两个字段均留空,则不会触发任何错误。

如何使NotEmpty验证程序与自定义数组元素一起使用?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM