Можно ли установить разделитель для строк формы Zend Framework 2 или отображать их в абзацах?

у меня это для формы

$this->add(array(
        'name'=>'username',
        'type'=>'Text',
        'options'=>array(
            'label' => 'Username',
        )
    ));
$this->add(array(
        'name'=>'password',
        'type'=>'Password',
        'options'=>array(
            'label' => 'Password',
        )
    ));

и

echo $this->formCollection($form);

Это, очевидно, только соответствующие части кода. Результат выглядит следующим образом:

<fieldset ><label><span>Username</span><input type="text" name="username" value=""></label><label><span>Password</span><input type="password" name="password" value=""></label>

Есть ли способ либо поместить каждую строку в абзац, либо разделить все строки разрывами строк? Я читал что-то о декораторах, но я не уверен, что это Zend Framework версии 2, и я не знаю, как применить это к formCollection, если это так.


person Tom Arrow    schedule 13.05.2015    source источник


Ответы (1)


Лучше всего переопределить помощника formRow своей собственной версией, которая выводит нужную вам разметку. Я написал небольшую lib, которая делает именно это, не стесняйтесь использовать ее или копировать подход .

Определите свой собственный помощник: https://github.com/tfountain/tf-form/blob/master/src/TfForm/Form/View/Helper/FormRow.php, а затем обновите конфигурацию вашего модуля, чтобы использовать его: https://github.com/tfountain/tf-form/blob/master/config/module.config.php

person Tim Fountain    schedule 13.05.2015
comment
Клонировал его в свой проект и отлично работает, спасибо. Только пришлось внести небольшое изменение в функцию рендеринга и добавить параметр $labelPosition, иначе я получил фатальную ошибку из-за совместимости. - person Tom Arrow; 15.05.2015