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

如何在Drupal专属Twig中通过ID获取指定节点为对象?

在Drupal Twig中获取指定节点对象并访问属性(Drupal 8.9.16)

问题说明

你当前使用的drupal_entity('node', '123', 'body')方法不符合预期,因为该函数的第三个参数是实体显示模式名称,而非字段名。当传入不存在的显示模式(如'body'、'title')时,系统会 fallback 到默认显示模式,因此会同时输出标题和正文。

直接获取节点对象并访问属性的Twig方案

1. 加载节点对象并直接访问字段值

使用entity_load函数加载指定ID的节点,之后可直接访问节点的各类属性:

{# 加载ID为123的节点 #}
{% set target_node = entity_load('node', 123) %}

{# 输出标题原始值 #}
{{ target_node.title.value }}

{# 输出body字段的原始文本值 #}
{{ target_node.body.value }}

{# 输出body字段经过过滤后的HTML内容(需用raw过滤器解析HTML) #}
{{ target_node.body.value|raw }}

{# 访问自定义字段,例如field_my_text(替换为你的字段机器名) #}
{{ target_node.field_my_text.value }}

2. 渲染格式化后的字段(带样式)

如果需要输出符合字段配置格式的内容(比如带换行、样式的body),可使用field_view_field函数:

{% set target_node = entity_load('node', 123) %}

{# 渲染格式化后的body字段 #}
{{ field_view_field(target_node, 'body') }}

{# 指定显示模式渲染标题,例如使用'teaser'模式 #}
{{ field_view_field(target_node, 'title', 'teaser') }}

补充说明

  • 确保你使用的Twig模板有足够权限访问目标节点(避免因权限问题导致加载失败)
  • 节点对象的字段属性可通过kint(target_node)打印查看完整结构(需开启Devel模块)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 21:24:28