Symfony2表格显示更改

时间:2014-03-08 16:49:53

标签: php forms symfony twig symfony-forms

如下面的屏幕截图所示,我的表单有多次练习字段。 (用户将不止一次进行锻炼)。我想自定义表单,因此只显示每个特定练习的第一个练习选择字段。他们无法添加额外的集合,也无法更改练习。表单元素从通用例程加载。

我将如何在Symfony2和Twig中执行此操作?

另外,我如何通过表单元素而不是选择框打印练习的名称?

Screenshot

我目前在显示表单方面有以下内容:

{{ form_start(form) }}

{% for exercise in form.logExercises %}
<div class="row">
    <div class="col-md-3">
        {{ form_label(exercise.exercise, 'Exercise', {'label_attr': {'class': 'control-label'}}) }}
        {{ form_errors(exercise.exercise) }}
        {{ form_widget(exercise.exercise, {'attr': {'class': 'form-control'}}) }}
    </div>

    <div class="col-md-1">
        {{ form_label(exercise.weight, 'Weight', {'label_attr': {'class': 'control-label'}}) }}
        {{ form_errors(exercise.weight) }}
        {{ form_widget(exercise.weight, {'attr': {'class': 'form-control'}}) }}
    </div>

    <div class="col-md-1">
        {{ form_label(exercise.repetitions, 'Reps', {'label_attr': {'class': 'control-label'}}) }}
        {{ form_errors(exercise.repetitions) }}
        {{ form_widget(exercise.repetitions, {'attr': {'class': 'form-control'}}) }}
    </div>
</div>
<br>
{% endfor %}

<hr>

<div class="row">
    <div class="col-md-4">
        <div class="form-group">
            {{ form_label(form.note, 'Notes', {'label_attr': {'class': 'control-label'}}) }}
            {{ form_errors(form.note) }}
            {{ form_widget(form.note, {'attr': {'class': 'form-control'}}) }}
        </div>
    </div>
</div>

<hr>

<div class="row">
    <div class="col-md-7">
        <div class="form-group">
            <button type="submit" class="btn btn-default btn-block">Save Session</button>
        </div>
    </div>
</div>

{{ form_end(form) }}

1 个答案:

答案 0 :(得分:0)

我猜测你的练习属于&#34;实体&#34;表格字段类型?如果没有,你应该考虑它。然后,您将能够使用custom query,您只能选择已分组实体的最顶层项目(按练习类型对它们进行分组)。如果不看一些额外的代码,就不能说更多。希望这有帮助,随时可以询问详细信息。