所以我试图让用户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) }}
它似乎不太起作用。
答案 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) }}
来检查赋予树枝的内容。