Php 可以有条件地将变量传递给Twig吗
因此,我正在构建一个组件,希望能够将一个值绑定到该组件,或者将其留空。理想情况下,我希望在不使用if语句的情况下使用过滤器或某种类型的三元运算符。因此,我是否可以在不显式传递日期的情况下使用此选项Php 可以有条件地将变量传递给Twig吗,php,symfony,twig,Php,Symfony,Twig,因此,我正在构建一个组件,希望能够将一个值绑定到该组件,或者将其留空。理想情况下,我希望在不使用if语句的情况下使用过滤器或某种类型的三元运算符。因此,我是否可以在不显式传递日期的情况下使用此选项 {% if date is not defined %} <input type='text' name="date" value="" class="form-control date-picker" /> <input type='hidden' name="ti
{% 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 = '';
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
您不能有条件地传递变量,但可以在twig中设置和测试一些变量。例如:
{% 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" />
{%set var_date=date已定义且日期不为空?日期:{'name':'date','value':''}%}
@ErenArdahan我对php和symfony不熟悉,但我不知道如何使用会话?我只想在我的视图中有空的未定义的检查。有可能吗?我知道你没有使用会话..我也没有使用symfony..我使用try twig作为一个包..我停止使用它的一些原因..其中一个原因是它不支持会话..而且似乎有一个错误,因为你正在传递一个数组,而你试图像变量一样到达该数组..@ErenArdahan,所以你建议让它们都有自己的变量?@jacknocke:您是否尝试过将{%if date is empty%}
与定义空日期结合使用?使用default()
过滤器的方法是正确的-{date.name | default(“date”)}
在date
和/或date.name
未定义的情况下有效。此外,如果不将日期
变量从控制器传递到模板,则模板也应该工作。我想错误在别的地方。您是否在模板的其他地方使用date
变量,而不使用default()
过滤器?你能给我们讲一点背景吗?