2010-04-15 4 views
1

Eariler я с удовольствием использовал следующий код для создания элементов формы (внутри 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)), 
     ), 
    )), 
)); 

Edit: обновленные варианты в StringLength валидатор ключи

+0

Weird .. но это тоже не работает. Если я добавлю var_dump ($ this-> getElement ('title') -> isValid ('XX')); сразу после кода, который вы указали выше (но «minLength» => 4), он вернет true, хотя длина равна 2. –

+2

Попробуйте изменить 'array ('minLength' => 1, 'maxLength' = > 50) 'to' array ('min' => 1, 'max' => 50) '. Я бы поспорил, что это проблема. Извините, я забыл об этом раньше. – awgy

+0

ах конечно, спасибо –

Смежные вопросы