如果元素不存在,则返回Twig错误

时间:2012-11-11 13:30:03

标签: twig silex

我正在使用Silex和Twig,我正在尝试找到密钥的出现。

由于密钥并不总是存在,因此方法1将失败并出现异常。另一方面,方法2没有错误,但我想避免额外的 for if 条件。

可以这样做吗?

方法1:

{% if app.session.get('shop').modules.promotion %}
    exists
{% endif %}

方法2:

{% if app.session.get('shop').modules is not empty %}
    {% for id, config in app.session.get('shop').modules %}
        {% if id == 'promotion' %}
            exists
        {% endif %}
    {% endfor %}
{% endif %}

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用is defined

{% if app.session.get('shop').modules.promotion is defined %}
    exists
{% endif %}

有关defined的更多信息,请点击此处:
Twig: Defined documentation