使用ZF2,我编写了一个自定义表单元素并将其包含在一堆表单中.问题是,如果我指定我不想要表单元素,我会丢失元素上的默认验证器.
class MyForm extends Zend\Form\Form implements Zend\InputFilter\InputFilterProviderInterface
{
public function __construct()
{
parent::__construct("my-form");
$this
->add(array(
'type' => 'Me\Custom\EmailList',
'name' => 'emails',
'options' => array(
'label' => _t('Email List'),
),
));
}
public function getInputFilterSpecification()
{
return array(
'emails' => array(
'required' => false,
),
));
}
}
Run Code Online (Sandbox Code Playgroud)
"EmailList"元素是一个简单的文本字段,它接受以逗号分隔的电子邮件地址列表.
class EmailList extends \Zend\Form\Element\Email
{
protected $attributes = array(
'type' => 'email',
'multiple' => true,
);
public function getInputSpecification()
{
$this->getEmailValidator()
->setMessage('"%value%" is not a valid email address');
$validator = $this->getValidator();
if …Run Code Online (Sandbox Code Playgroud)