Drupal 内容视图显示通过用户引用字段引用的实体

Drupal Content View Show entities referenced via user reference field

使用 Drupal 7、视图和实体 API 我正在尝试创建一个视图,向登录用户显示他可以使用的所有下载内容。

我使用以下内容类型:

用户 有一个实体引用字段接受 1 个值来引用 软件包user_software_pack

软件包 包含一个实体引用字段,该字段接受无限值以引用包中包含的 软件field_included_software

对于视图,我正在创建 Software

类型的内容预告片的未格式化列表

这样做会显示所有已发布的软件,我现在正尝试使用以下关系将列表过滤为仅供用户使用的软件。

对我来说,这意味着获取用户,然后使用它来引用软件包,然后引用该软件包中的软件。 该视图向我显示了所有软件实体。我错过了什么吗?

设置显示:使用关系的内容设置给我一个空视图,根据需要设置关系也提供一个空视图。

经过长时间的休息,然后回到问题上,我设法解决了它。

对于可能遇到类似问题的任何人: 我对一种关系的使用太多了。

我的视图显示了 软件 类型的所有内容。 软件在多个软件包中被引用(field_included_software)用户配置文件 有一个参考字段 (field_software_pack) 到 1 软件包.

要过滤内容类型 Software 的视图,需要首先建立与引用 [=33] 的 Software Packs 的关系=]软件.

  • 通过 field_included_software
  • 引用内容的内容实体的桥梁

然后它需要另一个与 用户配置文件 的关系,引用用户拥有的软件包

  • 通往通过 field_software_pack
  • 引用内容的用户实体的桥梁

获取已登录用户的用户 ID,以将结果限制为用户 Software Pack 中的 Software需要上下文过滤器。

  • 用户:Uid

上下文过滤器设置为提供来自 PHP 代码的默认值:

$uid = $GLOBALS['user']->uid;
return $uid;

上下文过滤器的关系设置为用户引用。

所有关系都必须设置为必需。

像这样配置我的视图后,一切都按计划进行。