symfony 2.8和trick:未定义变量


symfony 2.8 and twig: undefined variable

我有这个代码:

{% block vich_image_widget %}
    {% spaceless %}
        <div class="vich-image">
            {{ dump() }}
            {{ form_row(form.file) }}
            {% if form.delete is defined %}
                {{ form_row(form.delete) }}
            {% endif %}
            {{ download_uri }}
            {% if download_uri is defined and download_uri %}
                <a href="{{ download_uri }}"><img src="{{ download_uri | imagine_filter('my_thumb')}}" alt="" /></a>
            {% endif %}
            {% if show_download_link and download_uri is defined and download_uri%}
                <a href="{{ download_uri }}">{{ 'download'|trans({}, 'VichUploaderBundle') }}</a>
            {% endif %}
        </div>
    {% endspaceless %}
{% endblock %}

这给了我一个错误:

Variable "download_uri" does not exist in offerte/edit.html.twig at line 21

其中第21行为:{{ download_uri }}

但为什么我会出现这个错误?,trick在第22行中使用CCD_ 2而没有任何问题。

在第22行中,它只在download_uri存在的情况下使用,这就是为什么在第21行出现错误,它清楚地表明这个变量不存在,因为你没有将它传递给这个tmpl。

{% if download_uri is defined %}
{{download_uri}}
{% endif %}

在第21行中,您没有检查变量是否可用,因此需要将其放入if块中:

 {% if download_uri is defined and download_uri %}
     {{ download_uri }}
     <a href="{{ download_uri }}"><img src="{{ download_uri | imagine_filter('my_thumb')}}" alt="" /></a>
 {% endif %}

还有这个:

{% if download_uri is defined and download_uri %}

应该是这样的:

{% if download_uri is defined and download_uri is not empty %}