2010-04-15 47 views
1

早期的教我愉快地用下面的代码,用于创建的表单元素(Zend_Form的后代内侧):验证器在Zend Framework中不再起作用了吗?

 //Set for options 
     $this->setOptions(array(
      'elements' => array(
       'title' => array(
        'type' => 'text', 
        'options' => array(
         'required' => true, 
         'label' => 'Title', 
         'filters' => array('StringTrim'), 
         'validators' => array(
           array('StringLength', false, array('minLength'=>1, 'maxLength'=>50)), 
         ), 
        ) 
       ) 

));

但现在我已经注意到,验证器无法正常工作。我怀疑这可能是由于Zend的更新..

有谁面对这一问题?

回答

4

我不知道如果有一个API的变化,影响这个与否,但我用的语法是:

$this->addElements(array(
    array('text', 'title', array(
     'required' => true, 
     'label'  => 'Title', 
     'filters' => array('StringTrim'), 
     'validators' => array(
       array('StringLength', false, array('min'=>1, 'max'=>50)), 
     ), 
    )), 
)); 

编辑:更新了StringLength校验选项键

+0

奇怪..但这也不起作用。 如果我添加 var_dump($ this-> getElement('title') - > isValid('XX')); 紧跟你上面建议的代码(但是'minLength'=> 4),即使长度等于2,它也会返回true。 – 2010-04-15 09:06:50

+2

尝试更改'array('minLength'=> 1,'maxLength'= > 50)''array('min'=> 1,'max'=> 50)'。我敢打赌这是问题所在。对不起,我早先忽略了这一点。 – awgy 2010-04-15 13:34:40

+0

啊,当然,谢谢 – 2010-04-15 20:43:53