1

上下文:内容类型 Person 具有对内容类型 Work 的引用(多个值),使用实体引用。

Need:显示引用给定作品的每个人节点的标题,用逗号分隔

完成:具有反向引用的视图,获取正确的节点。(视图 7.x-3.7)

问题:无法显示以逗号分隔的值。注意:我通常使用 MULTIPLE FIELD SETTINGS 字段组中的“显示同一行中的所有值”下的“简单分隔符”显示类型来执行此操作。但是,此字段组在我的上下文中不可用。


解决了

我发现模块Views Merge Rows - 非常好用。如果由于某种原因它不支持 Features 模块,我可以获取它的一些代码以便自己使用 hook_views_pre_render。

4

4 回答 4

1

我能够通过使用 token_formatters 来解决这个问题。基本步骤(安装令牌格式化程序后):

  1. 与视图中的引用实体没有关系(不需要)
  2. 将实体引用字段添加到视图
  3. 将格式化程序更改为“标记化文本”
  4. 对于“要输出的文本”,请使用令牌(我正在使用 [node:field-name])
  5. 对于“链接目的地”,使用令牌(“我使用 [entity:url:path] 作为相对链接)
  6. 根据需要设置多个字段设置
于 2014-09-23T19:35:24.180 回答
0

我有一个类似的问题,我使用的是“引用实体”的实体引用关系而不是“引用实体”。(引用在子级上,视图从父级开始)。

当您在行 (dsm) 上运行 Drupal 系统消息时,它会适当地返回所有 nid 响应,但作为不同的结果行而不是作为单个对象;但是,由于 NID 字段(与许多其他字段一样)没有显示多个结果的选项,因此它只会获取第一个结果。

我最终不得不从 Views PHP 字段中执行实体查询,并将当前行的 NID 作为字段条件之一。这似乎可以解决问题,而不是尝试使用 views_field_view 在视图中加载视图。

$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'node')
->entityCondition('bundle', '[your_content_type]')
->propertyCondition('status', 1)
->fieldCondition('[your_field_machine_name]', '[field_column_to_check]', $row->nid)
->addMetaData('account', user_load(1)); // Run the query as user 1.
$result = $query->execute();
于 2013-12-16T17:07:19.427 回答
0

您在此处需要自定义视图格式,因为您正在谈论整个视图行而不是多个结果字段。您可以使用“未格式化列表”并添加逗号以添加 CSS 或 JS。

你使用什么样的关系?您可以在外部编辑器中导出整个视图并提供链接吗?

于 2013-08-02T15:45:25.937 回答
0

我有一个非常相似的问题:从我的内容类型到用户的多值实体引用的字段配置中没有可用的“多字段设置”。

通过删除实体引用并直接使用我的内容类型的多值“用户 ID”字段来解决它。“多字段设置”表单区域现在可用,我像往常一样选择了“在同一行中显示所有值”。现在这只会显示用逗号分隔的数字用户 ID(不需要)。但是在字段配置中还有一个设置“格式:”,我将其设置为“标签”。这将改为显示用户名。

因此,我想通过创建自定义格式化程序,您将能够以类似的方式显示关联的“工作”实体。

于 2014-08-06T17:33:59.320 回答