【问题标题】:Drupal Views relationshipDrupal 视图关系
【发布时间】:2010-10-05 16:34:04
【问题描述】:

在 Drupal 中,我有 3 种内容类型(A、B、C),请参阅 link。 A 和 C 包含对 B 的节点引用。

现在我有一个视图,可以从参数中查询 A 中的字段。我还想通过与 B 的关系芯片显示 C 中的字段,所以:

  • A 的节点引用 ID:1

  • B 有一个节点 ID:1

    我想显示 C 中 ID 的 nodereference 也是 1 的字段。这怎么可能?我无法弄清楚映射。

有人可以帮帮我吗?

【问题讨论】:

    标签: drupal drupal-6 drupal-views drupal-views-relationship


    【解决方案1】:

    目前,您可以通过节点引用轻松地从 A 转到 B,但由于链接是从 C 到 B,您无法获得到 C 的链接——这是当前的问题。

    简而言之,您可以使用模块 Node Referrer 来解决问题(请参阅 http://drupal.org/node/431308 了解它的作用)。本质上,它创建了一个 只读 字段,告诉您从 C 指向 B 的所有节点(即为每个节点引用创建一种反向节点引用)。

    假设我们有以下节点引用字段

    1. 在内容类型 A 中,我们有节点 引用字段名为a_to_b_link
    2. 在内容类型 C 中,我们有一个名为的节点引用字段 c_to_b_link
    3. 在内容类型 B 中,我们有 Node Referrer 字段来跟踪所有 节点参考中的链接 c_to_b_link

    创建相应的视图有点复杂。

    1. 首先为Node: Type = A添加一个过滤器
    2. 添加关系a_to_b_link。确保勾选复选框 Require this relationship
    3. 从名为Node: Referrers 的节点组添加另一个关系。还要确保在您应该的关系设置中 在Relationship 下拉列表中选择a_to_b_link。换句话说,您正在建立一个使用预先存在的关系的关系(在概念上类似于 C++ 中的指向指针的指针)确保选中复选框Require this relationship。默认情况下,这种关系被 Drupal 命名为 Referencing Nodes
    4. 现在像您一样从内容类型 A 中添加您想要的任何字段 通常在视图中。
    5. 当您想从内容类型 C 添加字段时,请确保您选择 关系Referencing Nodes

    【讨论】:

    • @Nealv:您也可以查看drupal.org/project/reverse_node_reference(它需要 MySQL 5.1),而不是 Node Referrer(我使用过的)。请参阅drupal.org/node/798786 了解与 Node Referrer 的区别。本质上,主要优点是您不需要在内容类型 B 中创建新字段。您只会在视图关系中获得反向节点引用。在这方面它可能会更“优雅”一点。但是这两种方法都可以。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多