0

我使用以下字段集对信息进行分组:

<input type='text' name='personal[firstname]'>
<input type='text' name='personal[lastname]'>

现在我想使用 InputFilter 来验证表单,但没有任何反应:

class CustomerFilter extends InputFilter 

/**
* Build filter
*/
public function init()
{
    $this->add(array(
            'name' => 'personal[firstname]',
            'required' => true,
            'filters' => array(
               array('name' => 'StringTrim'),
               array('name' => 'StripTags'),
            ),
            'validators' => array(
                array(
                    'name' => 'StringLength',
                    'options' => array(
                        'min' => 3,
                        'max' => 15,
                        'message' => 'Minimum: 3, Maximum 15 Chars allowed'
                    ),
               ),
            ),
    ));
}

我必须改变什么?

编辑:最后,我在这个链接的帮助下管理了它:

http://framework.zend.com/manual/2.2/en/modules/zend.form.collections.html

4

1 回答 1

2

不需要阵列老兄,

在 zend 验证中删除 array[]

<input type='text' name='personal[firstname]'>
<input type='text' name='personal[lastname]'>
class CustomerFilter extends InputFilter 

  /**
   * Build filter
   **/
  public function init()
  {
   $this->add(array(
        'name' => 'personal',
        'required' => true,
        'filters' => array(
           array('name' => 'StringTrim'),
           array('name' => 'StripTags'),
        ),
        'validators' => array(
            array(
                'name' => 'StringLength',
                'options' => array(
                    'min' => 3,
                    'max' => 15,
                    'message' => 'Minimum: 3, Maximum 15 Chars allowed'
                ),
           ),
        ),
));
}
于 2013-10-25T15:16:29.597 回答