在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]
任何帮助?
答案 0 :(得分:0)
延长树枝
<?php
$twig = new Twig_Environment($loader);
$twig->addFilter(new Twig_SimpleFilter('accessible_properties', 'get_object_vars'));
在模板
中使用它{% 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 %}