Как поместить сущность персонажа в значение formSubmit в ZF2

Когда я создаю кнопку отправки в форме ZF2 следующим образом:

    $this->add(array(
            'name' => 'save_closebutton',
            'attributes' => array(
                    'type'  => 'submit',
                    'value' => 'Save & Move On »',
                    'id'    => 'save_closebutton',
                    'class' => 'btn btn-default'
            ),
    ));

а затем поместите элемент formSubmit в представление следующим образом:

    echo $this->formSubmit($form->get('save_closebutton'));

ZF2 отображает текст кнопки как Save & Move On » без отображения символа, который представляет код.

Я почти уверен, что проблема в помощнике formSubmit, потому что проверка элемента показывает, что помощник создает это:

    <input id="save_closebutton" class="btn btn-default" type="submit" value="Save & Move On &#187;" name="save_closebutton">

но если я просто повторю ту же строку в представлении,

    echo '<input id="save_closebutton" class="btn btn-default" type="submit" value="Save & Move On &#187;" name="save_closebutton">';

кнопка отображается корректно.

Как заставить formSubmit передавать символ, а не код?


person jcropp    schedule 22.12.2015    source источник
comment
Почему бы просто не написать 'value' => 'Save & Move On »',?   -  person dualmon    schedule 23.12.2015
comment
Вероятно, можно было бы использовать 'value' => 'Save & Move On »', но цель моего вопроса заключалась в том, чтобы определить, как также включить html-код, например, 'Save & Move On <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>'   -  person jcropp    schedule 25.12.2015


Ответы (1)


Помощник FormSubmit экранирует имена и значения атрибутов перед выводом, насколько я знаю, нет способа отключить это без предоставления пользовательских помощников.

Поскольку ваш элемент отправки — это просто кнопка, вы можете использовать элемент Button и помощник представления FormButton для решения своей проблемы. У элемента есть параметр метки, который позволяет отключить экранирование html для метки, и помощник учитывает этот параметр.

Создайте кнопку отправки в форме...

$this->add(array(
        'name' => 'save_closebutton',
        'type' => 'Button', // \Zend\Form\Element\Button
        'options' => array(
             'label' => 'Save & Move On &#187;',
             // inform the FormButton helper that it shouldn't escape the label
             'label_options' => array(
                  'disable_html_escape' => true,
             ),
        ),
        'attributes' => array(
            'type'  => 'submit',  // <button type="submit" .../>
            'id'    => 'save_closebutton',
            'class' => 'btn btn-default'
        ),
));

Используйте помощник FormButton для рендеринга элемента...

 echo $this->formButton($form->get('save_closebutton'));
person Crisp    schedule 22.12.2015