Symfony Form Collection Twig Rendering


Symfony Form Collection Twig Rendering

我在编辑表单上为表单集合呈现树枝时遇到问题。表单加载没有问题,但集合字段的标签增加了一倍,并从选项修改为数字,jsfiddle将显示我的意思。

  1. html的jsfiddle输出
  2. 还有一张截图

Twig模板:

{% block body %}
    <div class="row">
        <div class="col-md-12">
            <a href="#" class="add-choice btn btn-default" aria-label="Add Choice">
                <span class="glyphicon glyphicon glyphicon-plus" aria-hidden="true"></span>
                Adauga Camp
            </a>
        </div>
    </div>
    <div class="row">
        <div class="col-md-12">
            <div class="panel panel-default">
                <div class="panel-heading">
                    <h1>Editeaza intrebarea</h1>
                </div>
                <div class="panel-body">
                    {{ form_start(edit_form, {'attr': {'class': 'form-horizontal'} } ) }}
                    <div class="row">
                        <div class="form-group">
                            {{ form_label(edit_form.question, null, {'label_attr': {'class': 'col-sm-2 control-label'} } ) }}
                            <div class="col-md-8">
                                {{ form_widget(edit_form.question, {'attr': {'class': 'form-control'} } ) }}
                                {{ form_errors(edit_form.question) }}
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="form-group">
                            {{ form_label(edit_form.surveyId, null, {'label_attr': {'class': 'col-sm-2 control-label'} } ) }}
                            <div class="col-md-8">
                                {{ form_widget(edit_form.surveyId, {'attr': {'class': 'form-control'} } ) }}
                                {{ form_errors(edit_form.surveyId) }}
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="form-group">
                            {{ form_label(edit_form.fieldType, null, {'label_attr': {'class': 'col-sm-2 control-label'} } ) }}
                            <div class="col-md-8">
                                {{ form_widget(edit_form.fieldType, {'attr': {'class': 'form-control'} } ) }}
                                {{ form_errors(edit_form.fieldType) }}
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="form-group">
                            {{ form_label(edit_form.categoryId, null, {'label_attr': {'class': 'col-sm-2 control-label'} } ) }}
                            <div class="col-md-8">
                                {{ form_widget(edit_form.categoryId, {'attr': {'class': 'form-control'} } ) }}
                                {{ form_errors(edit_form.categoryId) }}
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="form-group">
                            <div class="col-md-8">
                                {{ form_widget(edit_form._token, {'attr': {'class': 'form-control'} } ) }}
                                {{ form_errors(edit_form._token) }}
                            </div>
                        </div>
                    </div>
                    <div class="multiple-choice-prototype"
                         data-prototype="{{ form_widget(edit_form.answerId.vars.prototype)|e('html_attr') }}">
                        {{ form_widget(edit_form.answerId) }}
                    </div>
                    {{ form_widget(edit_form) }}
                    <div class="row">
                        <div class="form-group">
                            <div class="col-sm-offset-2 col-sm-10">
                                <button type="submit" value="Edit" class="btn btn-default">Salveaza</button>
                            </div>
                        </div>
                    </div>
                    {{ form_end(edit_form) }}
                    <div class="row">
                        <div class="col-md-12">
                            <div class="btn-group">
                                {{ form_start(delete_form) }}
                                <a class="btn btn-default" href="{{ path('surveyquestion_index') }}">Inapoi</a>
                                <input class="btn btn-default" type="submit" value="Sterge">
                                {{ form_end(delete_form) }}
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
{% endblock %}

字段的Twig:

{% block _survey_question_answerId_entry_widget %}
    <div class="row multiple-choice-container">
        <div class="form-group">
            {{ form_label(form.value, null, {'label_attr': {'class': 'col-sm-2 control-label'} } ) }}
            <div class="col-md-8">
                <div class="input-group">
                    <div class="input-group-addon">
                        <span class="glyphicon glyphicon-record" aria-hidden="true"></span>
                    </div>
                    {{ form_widget(form.value, {'attr': {'class': 'form-control'} } ) }}
                    {{ form_errors(form.value) }}
                </div>
            </div>
            <div class="col-md-2">
                <div class="btn-group">
                    <a href="#" class="add-choice btn btn-default" aria-label="Add Choice">
                        <span class="glyphicon glyphicon glyphicon-plus" aria-hidden="true"></span>
                    </a>
                    <a href="#" class="remove-choice btn btn-default" aria-label="Remove Choice">
                        <span class="glyphicon glyphicon glyphicon-minus" aria-hidden="true"></span>
                    </a>
                </div>
            </div>
        </div>
    </div>
{% endblock %}
    ->add('answerId', CollectionType::class, [
        'entry_options' => [
          'label' => false,
        ],
        'entry_type' => AnswerType::class,
        'allow_add' => true,
        'allow_delete' => true,
        'label' => false,
        'by_reference' => false,
    ])

这应该完成

的工作

删除{{ form_label(form.value, null, {'label_attr': {'class': 'col-sm-2 control-label'} } ) }}

在表单类型中将标签设置为false

示例:

$builder->add('yourAttribute', null, array('label' => false));