使用Drupal 7,Views和Entity API我正在尝试创建一个View,显示登录用户可以使用的所有下载。
我使用以下内容类型:
用户有一个实体引用字段,可接受1个值来引用软件包。 user_software_pack
软件包包含一个实体引用字段,该字段接受无限值以引用包中包含的软件。 field_included_software
对于视图我正在创建一个未格式化的类型软件
的内容提示词列表执行此操作会向我显示已发布的所有软件,我现在正尝试使用以下关系将列表过滤为仅供用户使用的软件。
对我来说,这会转换为获取用户,然后使用它来引用软件包,然后引用该软件包中的软件。 该视图向我显示了所有软件实体。我错过了什么吗?
设置Show:Content设置以使用该关系为我提供了一个空视图,根据需要设置关系也提供了一个空视图。
答案 0 :(得分:0)
经过漫长的休息并回到问题后,我设法解决了问题。
对于任何可能遇到类似问题的人: 我过多地使用过一种关系。
我的视图显示软件类型的内容。 多个软件包 (field_included_software)中引用了软件,用户个人资料有一个参考字段( field_software_pack)到1 软件包。
要过滤内容类型软件的视图,首先需要建立与引用软件的软件包的关系。
然后,它需要与用户个人资料的另一个关系,引用用户拥有的软件包。
要获取已登录用户的用户ID,仅将结果限制为用户软件包中的软件,则需要使用上下文过滤器。
上下文过滤器设置为从PHP代码提供默认值:
$uid = $GLOBALS['user']->uid;
return $uid;
上下文过滤器的关系设置为用户引用。
所有关系都必须设置为必需。
一旦我像这样配置了我的视图,一切都按计划进行。