我有一个 View ,其中显示多种内容类型,因此我需要根据显示的内容类型过滤在“views-view--myview.html.twig”中创建的一些自定义菜单条目当前 View 。
我使用了 xdebug,但无法在我的 View 中打印内容类型机器名称(我需要内容类型机器名称,而不是标签!)
请注意,我不想在views-view-fields 模板中执行此操作。
我的问题是:如何获取views-view.html.twig 文件中的内容类型(在 View 中显示)?
如果有预处理功能,它也会对我有帮助!
最佳答案
在views-view.html.twig或覆盖的 Twig 中,例如views-view--myview.html.twig,您可以执行以下操作
获取第一行实体的标题
{{rows[0]['#rows'][0]['#row']._entity.getTitle()}}
获取第一行实体的类型/束
{{rows[0]['#rows'][0]['#row']._entity.bundle()}}
因此,要访问所有行,您可能需要一个循环 以下检查每行的实体类型/包
{% for row in rows[0]['#rows'] %}
{% if row['#row']._entity.bundle() == 'page' %}
<div>its a page</div>
{% endif %}
{% endfor %}
但修改 View 的各个行的最佳位置可能是在 View 的特定显示内部,例如views-view-unformatted.html.twig或views-view-unformatted --myview.html.twig
为了进行比较,获取标题和类型/包并按上述方式循环遍历行
{{rows[0]['content']['#row']._entity.getTitle()}}
{{rows[0]['content']['#row']._entity.bundle()}}
{% for row in rows %}
{% if row['content']['#row']._entity.bundle() == 'page' %}
<div>its a page</div>
{% endif %}
{% endfor %}
关于twig - 如何获取views-view.html.twig 文件中的内容类型|德鲁帕尔 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49843392/