【问题标题】:Addressing Views rows separately in Drupal 8在 Drupal 8 中分别寻址视图行
【发布时间】:2016-04-24 06:24:25
【问题描述】:

在 Drupal 8 中,我使用显示一些图片的视图创建了一个块。我想拍摄这些照片并添加一些代码来制作幻灯片。所以我创建了一个名为 block--views-block--my-view-name-block-1.html.twig 的文件,其中包含以下内容:

{{ content }}

当然会显示三个图像。我的问题是,如何分别处理每张图片?例如,我想实现这样的目标:

{% for item in content %} 
 {{ field_image.item }} 
{% endfor %}

{% for item in content %} 
 {{ content.field_image.item }} 
{% endfor %}

或者我可以在 twig 中写什么来简单地显示一个特定的图像?例如像 {{ content.field_image.1 }} ?

非常感谢。

【问题讨论】:

    标签: drupal twig views block drupal-8


    【解决方案1】:

    您实际上必须使用/templates/views 中的视图才能使其工作。这有点棘手,因为 Twig 调试当前(从 8.6 开始)不建议此级别的模板。

    例如,如果您是一个机器名称为my_custom_view 的未格式化列表视图,并且您尝试在块级别block--views-block--my-custom-view-block.html.twig 上使用它,您可以将view-view-unformatted.html.twig 模板重命名为view-view--unformatted--my-custom-view.html.twig。您使用哪种视图模板取决于您使用的视图类型(HTML 列表、无格式列表、表格等)。这将允许您在行级别进行迭代。

    【讨论】:

      【解决方案2】:

      我不能肯定地告诉你,但你可以调试:

      {{ dump(content|keys) }}
      

      上面的命令列出了“内容”的数组键。我通常这样做是因为它比转储整个内容变量要快。

      然后您将看到该变量中的确切内容以及如何访问您需要的内容。

      注意:要在 twig 中进行调试,您需要先在 services.yml(drupal/sites/default)中启用它,如下所示:

      debug: true
      

      也有用:https://www.drupal.org/project/devel 使用 kint 基本上你会得到一个更高级的 var_dump。

      【讨论】:

        【解决方案3】:

        我可能错了,但如果您只想打印一个项目,您可以在视图 UI 中将要显示的项目数设置为“1”。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-04
          相关资源
          最近更新 更多