3.5.7. 在 Views 中进行数据聚合
Views 模块不仅可以从 Drupal 数据表中输出数据,还能对这些数据进行汇总和分组计算,这一功能被称为 数据聚合(Aggregation)。
Drupal 默认自带一个 分类词汇表(Taxonomy Vocabulary),其中包含标签(Tags)。我们将创建一个区块,用于显示网站中最常用的标签,并在每个标签后显示该标签被使用的次数。最终效果如下:
Drupal 9 (5)
Drupal 8 (3)
PHP (2)
创建示例数据
首先,创建几篇文章并为它们添加标签:
/node/add/article
当你创建了一些文章后,就可以开始创建视图了。
创建 Views 区块
进入以下路径:
/admin/structure/views/add
选择 Taxonomy terms 作为显示类型,并选择 Tags 作为数据来源:
启用聚合功能
在 Views 编辑界面中,启用 Use aggregation 选项:
启用后,你会在字段(Fields)设置中看到更多与聚合相关的选项:
添加关系(Relationships)
添加与内容的关系:Content using this term。
勾选 Require this relationship,以便仅统计被内容实际使用的标签:
配置字段
添加两个 Term Taxonomy: Name 字段,并将第一个字段设置为隐藏:
为第二个字段设置聚合类型为 COUNT(计数):
刷新视图预览后,你就能看到每个标签被使用的次数:
格式化输出
现在我们希望每个标签名后都显示计数。为此,可以使用第二个字段的 Rewrite results(重写结果) 功能,在其中组合两个字段的输出:
在 Replacement patterns(替换模式) 下拉菜单中,你可以看到可用的字段占位符。输入以下格式:
{{ name }} ({{ name_1 }})
圆括号用于显示计数值,双花括号语法({{}}
)来自 Twig 模板系统 —— 它表示在渲染时将被实际字段值替换。
最终,你的字段设置应如下:
最终效果如下: