Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 可以有条件地将变量传递给Twig吗_Php_Symfony_Twig - Fatal编程技术网

Php 可以有条件地将变量传递给Twig吗

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语句的情况下使用过滤器或某种类型的三元运算符。因此,我是否可以在不显式传递日期的情况下使用此选项

{% 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()
过滤器?你能给我们讲一点背景吗?