2010-04-15 30 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