【问题标题】:views duplicates fields when node contains two multi-valued fields.当节点包含两个多值字段时,视图重复字段。
【发布时间】:2011-06-20 00:53:42
【问题描述】:

这是我的设置:

我定义了一个包含多值文件字段(“field_myfilefields”)和多值 emvideo 字段(“field_myemvideos”)的节点类型。 我创建了一个这种类型的节点,并且(例如)用两个文件字段和三个 emvideo 填充它。 我定义了一个视图,其中包含以下字段:field_myfilefields、field_myemfields。

我想要什么:

在本例中,我希望视图创建五行,每行一个视频。

我得到了什么:

Views 创建 6 行,每行包含一个文件字段和一个 emvideo 字段:

  • 第 0 行:文件字段 0,emvideo 0
  • 第 1 行:文件字段 0,emvideo 1
  • 第 2 行:文件字段 0,emvideo 2
  • 第 3 行:文件字段 1,emvideo 0
  • 第 4 行:文件字段 1,emvideo 1
  • 第 5 行:文件字段 1,emvideo 2

也就是说,视图循环通过文件域,并且对于每个文件域循环通过emfields。每个视频显示两次。我可以理解为什么视图会这样做,但这不是我想要的,我希望这是一种解决方法。

关于如何强制每行一个视频并避免重复视频有什么建议吗?

附:我尝试使用视图的“分组多个值”复选框。但这并没有解决问题。

【问题讨论】:

  • 当您将视图定义为显示两个字段时,它将显示两个字段。我认为您需要将视图分成 2 个视图,一个用于 field_myfilefields,一个用于 field_myemfields。或者,您可以使用视图的更改功能来更改视图数据库查询
  • 查看视图 2 UI,我没有看到更改数据库查询的选项。我在哪里可以找到这个选项?谢谢。
  • 好吧,你必须构建一个新模块,然后使用 views hook 或特定的 hook_views_query_alter 。我不认为它是正确的解决方案。如果由我决定,我会建立两个单独的视图..
  • 非常感谢。经过进一步思考,我会采纳你的建议,创建两个不同的视图,并使用视图 API 将两组行组合起来。

标签: drupal drupal-6 drupal-views


【解决方案1】:

我记得在 Drupal 6 的 Views 2 中有一个用于视图的“distinct”设置,仅用于此目的。

【讨论】:

  • 很遗憾没有解决问题。我检查了“distinct”,视图现在只输出一行,包含第一个文件字段和第一个 emfield。还有其他想法吗?
  • 您能描述一下您对视图的过滤器、关系等吗?
  • 目前,这是一个非常基本的视图。没有过滤器,也没有关系。只是上面描述的两个字段。所有其他设置均为默认设置。
  • 我明白了,您的问题似乎从 cmets 获得了所需的帮助。我希望它成功了!
猜你喜欢
  • 1970-01-01
  • 2013-10-15
  • 2017-02-27
  • 2018-09-26
  • 1970-01-01
  • 2019-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多