【问题标题】:Drupal Views complex query: filter only relationshipsDrupal Views 复杂查询:仅过滤关系
【发布时间】:2014-08-20 11:05:50
【问题描述】:

我遇到了一个复杂查询的问题。我有一个节点类型事件和用户列表。事件和用户之间可能存在(也可能不存在)使用关系模块 (https://www.drupal.org/project/relation) 创建的 RSVP 关系。在任何关系中都有关于 RSVP 的信息(出席、邀请、ecc.)。我需要创建一个页面,在其中显示下一个事件以及有关当前登录用户的相关 RSVP 信息。 我不会讨论事件过滤问题,主要问题是不是每个事件用户都有 RSVP 关系,而只是用户对事件感兴趣的地方(为什么很明显)。

我不完整的解决方案是: 从事件列表开始,只过滤我感兴趣的事件, 为获取 RSVP 关系的字段创建关系“节点RSVP 关系”, 从以前的关系中,创建一个新关系“RSVP 关系用户”以获取链接用户 仅过滤当前登录的用户

此解决方案仅在事件当前用户 RSVP 关系存在时才有效!如果它不存在,则事件会在我想显示的地方消失,而无需任何 RSVP 信息。

我对解决方案的最后一个想法是过滤器仅应用于关系而不是事件,或者可以创建两个视图(事件和当前用户的 RSVP)并离开加入它们。 我的旧想法是接受(我不知道如何)没有事件当前用户关系的事件,但我意识到这个解决方案可能接受所有事件!当前用户关系,我不想要这个.

我该怎么办?谢谢!

【问题讨论】:

  • 我认为的另一个解决方案是建立与另一个视图的关系。说明:我构建了第二个视图“来自用户 % 的所有 RSVP”,它从上下文过滤器中获取一个 uid 并返回该用户的 RSVP 和 RSVP 事件列表,因此我从原始视图(事件的 nid)和辅助视图(来自 RSVP 的事件的 nid)。这会起作用,但我不知道该怎么做。

标签: drupal filter views relationship


【解决方案1】:

您应该开始检查是否按要求设置了关系。不同之处在于内连接而不是左连接。检查查询以查看您获得了什么联接

【讨论】:

    【解决方案2】:

    最后,我使用 Drupal 的模块 Views Field View 解决了这个问题,我在其中包含了一个在另一个列出事件的视图中选择 RSVP 信息的视图

    【讨论】:

      猜你喜欢
      • 2019-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-30
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多