的陣列我有一個SELECT2字段(標記)至極需要與EmailAddress的驗證器從Zend框架進行驗證2.驗證EmailAddress的可以驗證電子郵件
從SELECT2字段後是這樣的:
'[email protected], [email protected]'
從這裏,我的形式所具有的輸入濾波器至極看起來是這樣的:
public function getInputFilterSpecification()
{
return array(
'name' => array(
'required' => true,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim'),
),
),
'emailList' => array(
'required' => true,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim'),
array(
'name' => 'Callback',
'options' => array(
'callback' => function($value) {
if (is_string($value)) {
$value = explode(',', $value);
}
return $value;
},
),
)
),
'validators' => array(
array(
'name' => 'EmailAddress',
),
),
),
);
}
就像你看到的,我想驗證所有的郵件我從形式得到,所以我explode
我STR進入一個循環中有效每個電子郵件的數組。
一個問題,我不知道如何以及在哪裏驗證這個數組。在這個例子中,我得到錯誤'invalid type. String expected'
意味着這個驗證器只接受一封電子郵件。
可以做到這一點嗎?我可以將一個foreach插入選項回調來驗證我的每封電子郵件嗎?
嘗試:
從我的字段集:
$this->add(
array(
'name' => 'emailList',
'type' => 'Zend\Form\Element\Email',
'options' => array(
'label' => 'email_list',
'label_attributes' => array(
'class' => 'control-label col-xs-5'
),
),
'attributes' => array(
'class' => 'form-control select-tags col-xs-5 nopadding',
'multiple' => true,
)
)
);
我VUE:
<?=$this->formEmail($reporting->get('emailList'));?>
<p class="col-xs-4 help-block">
<?php
if ($this->formElementErrors($reporting->get('emailList'))) {
echo $this->formElementErrors()
->setMessageOpenFormat('- ')
->setMessageSeparatorString('<br/>- ')
->setMessageCloseString('')
->render($reporting->get('emailList'));
}
?>
</p>
我試圖類型更改爲Zend的\表格\電子郵件,甚至與...沒有按預期工作
而且我收到了以前的錯誤消息:
- '[email protected],lol' ne correspond pas au format dot-atom - '[email protected],lol' ne correspond pas au format quoted-string - '[email protected],lol' n'est pas une partie locale valide pour l'adresse email
對不起它在法國,基本上它說,該字符串不匹配點原子模式,引用列模式,而不是有效的電子郵件地址。但是
[email protected]是第一封電子郵件,而[email protected]是第二封。所以逗號是個問題
伊莫使用Zend的\表格\元素\電子郵件與多個真實。見http://framework.zend.com/manual/current/en/modules/zend.form.element.email.html – venca
@venca我編輯我的文章與你的想法,很好的提示btw,但它似乎我做錯了或者它沒有按預期工作。 – Hooli