twig - 如何获取views-view.html.twig 文件中的内容类型|德鲁帕尔 8

标签 twig content-type drupal-views drupal-8

我有一个 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.twigviews-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/

相关文章:

browser - AWS S3 : Force File Download using 'response-content-disposition'

Sharepoint:更新内容类型时,基于内容类型的列表会如何处理?

caching - 如何以编程方式清除 Drupal 7 中缓存的 View ?

drupal - 如何删除显示在 Drupal View 中的节点?

symfony - 从应用程序目录导入宏模板

javascript - Symfony 导入 jquery 和 js 脚本

jQuery : How to send JSON data in AJAX post?

drupal - 查看: Exclude nodes that have the same taxonomy term id(s) as current node

php - 如何从 Twig 模板中检索所有变量?

php - Twig 访问对象