Использование декораторов с файловым элементом

У меня проблемы с использованием декораторов в сочетании с $logo=$this->createElement('file', 'logo')

У меня есть форма в табличном стиле, все работало довольно хорошо, пока я не хотел добавить элемент файла. Вот связанная часть моего кода (класс формы):

 $logo=$this->createElement('file', 'logo')
        ->setLabel('logo:')
        ->setDestination(APPLICATION_PATH . "/../public/images/logos")
        ->addValidator('Count', false, 1)                           
        ->addValidator('Size', false, 1024000)                      
        ->addValidator('Extension', false, 'jpg,png,gif,jpeg');     

    $logo->setDecorators(array(
          'ViewHelper',
           'Description',
           'Errors', array(array('data'=>'HtmlTag'), array('tag' => 'td',
           'colspan'=>'2','align'=>'center')),
           array(array('row'=>'HtmlTag'),array('tag'=>'tr'))    //, 'closeOnly'=>'true'
   ));

Появилось следующее сообщение об ошибке: Предупреждение: исключение обнаружено формой: не найден декоратор файла... невозможно отобразить элемент файла Stack Trace

Какое может быть решение?

1 ответ

Решение

Элемент File требует своего собственного декоратора - Zend_Form_Decorator_File.

+ Изменить ViewHelper за File:

$logo->setDecorators(
    array(
        'File',
        'Description',
        'Errors', array(array('data'=>'HtmlTag'), array('tag' => 'td',
        'colspan'=>'2','align'=>'center')),
        array(array('row'=>'HtmlTag'),array('tag'=>'tr'))    //, 'closeOnly'=>'true'
    )
);
Другие вопросы по тегам