Как установить декораторы для элементов ввода типа файла? - PullRequest
0 голосов
/ 22 августа 2011

У меня есть следующий фрагмент кода, в myClass я установил переменную декораторов,

 public $testDecorators = array(
    'ViewHelper',
    'Errors',
    array('Description', array('escape' => false, 'tag' => '', 'placement' => 'append')),
    array(array('data' => 'HtmlTag'), array('tag' => 'div', 'class' => 'itemR')),
    array('Label', array('tag' => 'div', 'class' => 'itemL')
    ),
    array('HtmlTag', array('tag' => 'div', 'class' => 'itemcontent'))
);

В функции CreateForm,

....

    $cover_image = new Zend_Form_Element_File('cover_test', array(
      'label' => 'Cover Test:',
      'value'   => '',
      'class' => 'test',
      'tabindex' => '5',
      'required' => false,
      'filters' => array('StringTrim'),
          'decorators' => $this->testDecorators,
    ));

....

Когда я использую эти декораторы, в моей форме ничего не отображается, если я прокомментировал, что форма 'decorators' => $this->testDecorators, подходит с тегом dd по умолчанию, пожалуйста, помогите мне

Ответы [ 2 ]

4 голосов
/ 22 августа 2011

Элемент file должен включать декоратор 'File', обычно вместо декоратора ViewHelper. Так что попробуйте это вместо:

public $testDecorators = array(
    'File',
    'Errors',
    array('Description', array('escape' => false, 'tag' => '', 'placement' => 'append')),
    array(array('data' => 'HtmlTag'), array('tag' => 'div', 'class' => 'itemR')),
    array('Label', array('tag' => 'div', 'class' => 'itemL'),
    array('HtmlTag', array('tag' => 'div', 'class' => 'itemcontent'))
);
1 голос
/ 22 августа 2011

Вы смотрели на то, что показывает $cover_image->getDecorators()

Кроме того, верно ли это в середине:

array(array('data' => 'HtmlTag'), array('tag' => 'div', 'class' => 'itemR')),

не должно быть:

array('HtmlTag', array('tag' => 'div', 'class' => 'itemR')),

как последний?

...