1

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

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

  • A 的节点引用 ID:1

  • B 有一个节点 ID:1

    我想显示来自 C 的字段,其中 ID 的节点引用也是 1。这怎么可能?我无法弄清楚映射。

有人可以帮帮我吗?

4

1 回答 1

2

目前,您可以通过节点参考轻松地从 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 字段,用于跟踪 Node Reference 中的所有链接 c_to_b_link

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

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