仅在表单中用树枝填充时显示文本

时间:2018-10-23 04:38:32

标签: symfony twig

所以我试图让用户bmi像这样在控制器中执行

$form = $this->createForm(CaloriesType::class);

    $bmi = 0;

    $form->handleRequest($request);
    $data = $form->getData();
    if ($form->isSubmitted() && $form->isValid()){
        $bmi = ($data['mass'] /  ($data['height'] * $data['height'])) * 10000;

        switch ($bmi){
            case $bmi < 18.4:
                $bmi = "Underweight";
                break;
            case $bmi > 18.5 && $bmi < 24.9;
                $bmi = "Normal";
                break;
            case $bmi > 25 && $bmi < 29.9;
                $bmi = "Overweight";
                break;
            default:
                $bmi = "Obese";
                break;
        }
    }

然后在我的html中,我试图找出一种仅在用户输入并发送内容后才显示文本的方法,因为我不希望一直存在随机文本。

这是我尝试过的。

{{ form_start(our_form) }}
{{ form_widget(our_form) }}
<div class="from-group row">
    <div class="col-sm-2"></div>
    <div class="col-sm-12">
        <input type="submit" name="Send" class="btn btn-success">
    </div>
</div>
{% if bmi == 0 %}

{% else %}
According to BMI you are:  {{ bmi }}
{% endif %}
{{ form_end(our_form) }}

它似乎不太起作用。

2 个答案:

答案 0 :(得分:0)

可能是因为form_end的默认行为是也渲染 unrendered 字段。如果要禁用此功能,可以执行以下操作:

{# don't render unrendered fields #}
{{ form_end(our_form, {'render_rest': false}) }}

希望获得帮助

答案 1 :(得分:0)

{% if bmi == 0 %}似乎不起作用,您是否尝试过

{% if bmi != 0 %} According to BMI you are: {{ bmi }} {% endif %}

{% if bmi > 0 %} According to BMI you are: {{ bmi }} {% endif %}

当我对if子句有疑问时,我使用{{ dump(bmi) }}来检查赋予树枝的内容。