查找twig数组是否为空的非受保护值

时间:2016-08-23 16:09:41

标签: php twig

在twig模板中给出一个php数组:

object(Drupal\Core\Template\Attribute)#1208 (1) {
    ["storage":protected]=> array(0) { }
}

如何检查阵列中是否没有未受保护的元素?我的想法是我只能操作非受保护的值,所以如果只有受保护的值,我可以假装数组是空的。

到目前为止,我的检查如下:

{% if attributes is defined and attributes is not empty %}
    <div{{ attributes }}>
      {{ content }}
    </div>
{% else %}
    {{ content }}
{% endif %}

以当前形式显示<div>[Content]</div>。相反,我希望看到:[Content]

任何帮助?

2 个答案:

答案 0 :(得分:0)

  1. 延长树枝

    <?php
       $twig = new Twig_Environment($loader);
       $twig->addFilter(new Twig_SimpleFilter('accessible_properties', 'get_object_vars'));
    
  2. 在模板

    中使用它
    {% set public_attributes = attributes is defined ? (attributes|accessible_properties) : [] %}
    {% if public_attributes is not empty %}
        ...
    {% else %}
        ...
    {% endif %}
    

答案 1 :(得分:0)

如果这是在Drupal 8中,您可以通过渲染传递属性值来查找,如下所示:

{% if attributes|render %}
  <div{{ attributes }}>
    {{ content }}
  </div>
{% else %}
  {{ content }}
{% endif %}