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

如何在Drupal模板中匹配段落下拉列表字段的值

解决Drupal段落下拉字段值匹配与样式切换问题

嘿,我来帮你搞定这个Drupal段落里的下拉选项匹配和样式切换的问题!先看看你现有代码里的几个小问题,再给你修正后的方案:

你当前代码的问题

  1. 字段值访问路径不对:你是在当前段落里直接加的下拉字段(field_selector),不需要去循环content.field_paragraph_jumbotron['#items'],直接从段落实体本身获取值更可靠。
  2. HTML转义没必要:在Twig模板里可以直接写原生HTML标签,不用写成<或者",这样代码更易读。
  3. 样式类重复:你给dark和light选项设置的div类完全一样,这会导致选这两个选项时显示效果没有区别,得调整一下。

修正后的Twig代码

{% set paragraph = content['#paragraph'] %}
{# 获取下拉字段的值,默认设为light防止空值 #}
{% set selector_value = paragraph.field_selector.value|default('light') %}

{% block content %}
  {% if selector_value == 'big' %}
    <div class="p-5 mb-4 bg-light rounded-3">
      {{ content.field_paragraph_content }} {# 替换成你段落里存放内容的字段机器名 #}
    </div>
  {% elseif selector_value == 'dark' %}
    <div class="h-100 p-5 text-white bg-dark rounded-3">
      {{ content.field_paragraph_content }}
    </div>
  {% else %}
    {# light选项对应的样式,这里和dark区分开 #}
    <div class="h-100 p-5 text-dark bg-light rounded-3">
      {{ content.field_paragraph_content }}
    </div>
  {% endif %}
{% endblock %}

关键说明

  • 获取段落实体:content['#paragraph']直接指向当前编辑的段落实体,通过它可以直接访问段落上的所有字段,包括你的field_selector下拉字段。
  • 默认值处理:用|default('light')可以避免字段为空时出现判断失效的情况,保证页面正常渲染。
  • 调试技巧:如果还是拿不到值,可以在模板里加{{ dump(paragraph.field_selector) }}(开启Twig调试后),查看字段的结构,确认值的正确获取路径。

内容的提问来源于stack exchange,提问作者OCTOGONE.dev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 23:13:13