我为电话号码创建了自定义表单元素。它由国际前缀的选择和实际电话号码的文本组成。
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验证器与自定义数组元素一起使用?