Метка флажка не отображается при использовании form_div_layout в Symfony 4 - PullRequest
0 голосов
/ 24 марта 2020

Я конвертирую приложение Symfony 2.8 в Symfony 4.4. Я обновил библиотеки, компоненты, контроллеры, формы и т. Д. c, так что теперь я не устарел, но обнаружил странную проблему: почти все формы, которые мы используем в этом приложении, отображаются с использованием bootstrap_3_horizontal_layout тема, без проблем. Но в нескольких формах, которые мы используем, чтобы получить больше контроля над отображаемым интерфейсом, тема form_div_layout. Проблема в том, что когда мы используем эту тему, метка, текст рядом с флажками, не отображается. Если мы просто отключим порядок {% form_theme form 'form_div_layout.html.twig' %}, метки будут отображаться правильно.

Вот код, который мы используем для отображения флажков:

<div class='row'>
    <div class='col-md-3'>
        {{ form_label(form.user.roles) }}
    </div>
    <div class='col-md-9'>
        {{ form_errors(form.user.roles) }}
        {% for child in form.user.roles %}
            {{- form_widget(child) -}}
            {{- form_label(child) -}}
            <br />
        {% endfor %}
    </div>
</div>

И это небольшой фрагмент кода сгенерированный код:

<input type="checkbox" id="form_user_roles_0" name="form[user][roles][]" value="ROLE_INTRANET" checked="checked" /><br />
<input type="checkbox" id="form_user_roles_1" name="form[user][roles][]" value="ROLE_EXTRANET" checked="checked" /><br />
<input type="checkbox" id="form_user_roles_2" name="form[user][roles][]" value="ROLE_INTRANET_ADMIN" /><br />

И это тот же фрагмент, но с отключенной опцией form_theme (поэтому, используя bootstrap_3_horizontal_layout:

<div class="checkbox"><label for="form_user_roles_0"><input type="checkbox" id="form_user_roles_0" name="form[user][roles][]" value="ROLE_INTRANET" checked="checked" /> Access to the intranet</label></div><br />
<div class="checkbox"><label for="form_user_roles_1"><input type="checkbox" id="form_user_roles_1" name="form[user][roles][]" value="ROLE_EXTRANET" checked="checked" /> Access to the extranet</label></div><br />
<div class="checkbox"><label for="form_user_roles_2"><input type="checkbox" id="form_user_roles_2" name="form[user][roles][]" value="ROLE_INTRANET_ADMIN" /> Intranet Administrator</label></div><br />

Что мы делаем неправильно? Как можно ли печатать / показывать / отображать этикетки, используя form_div_layout?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...