You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Drupal 8视图:如何访问内容类型关联段落字段及获取多标题?

嘿,我来帮你搞定Drupal 8视图里访问段落字段和获取所有关联段落标题的事儿~

在Drupal 8视图中访问段落字段&批量获取段落标题

一、通过视图UI界面访问段落字段

这部分完全不用写代码,跟着步骤走就行:

  1. 打开你要编辑的视图(或者新建一个针对目标内容类型的视图)。
  2. 点击「添加字段」,在字段列表里找到你那个关联段落的字段(比如你命名的「关联段落集合」),把它添加到视图里。
  3. 添加后在字段设置里,把「格式化程序」改成「渲染实体」,然后选一个合适的「视图模式」(比如默认视图模式,或者你给段落类型自定义的视图模式),这样就能直接展示段落里的标题、描述等字段了。
  4. 如果只想单独显示段落的某一个字段(比如只看标题),别直接加段落关联字段,先去「添加关系」,找到你的段落关联字段并添加——添加关系后,再回到「添加字段」列表,就能看到「段落: 标题」(这里的“标题”是你段落类型里的字段名)这类子字段了,直接添加它就行。

二、获取所有关联段落的标题(两种常用场景)

1. 视图UI里批量展示所有标题

要是想把所有关联的段落标题用逗号/换行之类的方式列出来:

  • 先按上面的方法添加「段落: 标题」字段,确保已经加好段落关联关系。
  • 找到字段设置里的「多个字段设置」,把「显示多个值的方式」改成「简单分隔符」,然后设置你想要的分隔符(比如逗号加空格 , ),这样所有关联段落的标题就会整齐地排成一行啦。

2. 自定义代码里获取所有标题(比如视图模板预处理)

如果需要在代码里拿到这些标题做进一步处理(比如在视图模板里自定义输出),可以这么写:

// 假设你的内容实体是$node,段落字段的机器名是field_paragraphs
$paragraphs = $node->get('field_paragraphs')->referencedEntities();
$paragraph_titles = [];

foreach ($paragraphs as $para) {
  // 这里的field_title要换成你段落里标题字段的机器名
  $title = $para->get('field_title')->value;
  if (!empty($title)) {
    $paragraph_titles[] = $title;
  }
}

// 把标题数组转成带分隔符的字符串
$all_titles = implode(', ', $paragraph_titles);

小提醒

  • 要是在视图里找不到段落的子字段,一定要先检查有没有添加段落关联关系——毕竟段落是关联实体,必须先建立关系才能访问它的内部字段。
  • 所有示例里的字段机器名(比如field_paragraphs、field_title)记得换成你自己实际创建的字段名哦!

内容的提问来源于stack exchange,提问作者user3651844

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:52:17