所以我正在构建一个组件,并希望能够将值绑定到它或将其留空。理想情况下,我想在没有if语句的情况下使用过滤器或某种类型的三元运算符。所以我可以在没有明确传递date
{% if date is not defined %}
<input type='text' name="date" value="" class="form-control date-picker" />
<input type='hidden' name="timezone" class="timezone" />
{% else %}
<input type='text' name="{{date.name | default("date")}}" value="{{ date.value | default("")}}" class="form-control date-picker" />
<input type='hidden' name="timezone" class="timezone" />
{% endif %}
这是我在尝试多项操作后最终得到的丑陋代码。
我无法在没有为date
$date = '';
return $this->render('ComponentBundle:Default:datepicker.html.twig',array(
'date' => $date,
));
当我没有将date
传递给视图时,我得到的错误是
Variable "date" does not exist in ComponentBundle:Default:datepicker.html.twig at line 10
答案 0 :(得分:2)
您无法有条件地传递变量,但您可以在树枝内设置和测试一些变量。例如:
{% set var_date = date is defined and date is not empty ? date : {'name': 'date', 'value': ''} %}
<input type='text' name="{{ var_date.name }}" value="{{ var_date.value }}" class="form-control date-picker" />
<input type='hidden' name="timezone" class="timezone" />