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

升级Drupal 10时TWIG代码出现语法错误,请求排查解决

Drupal 10升级后Twig模板语法错误修复

错误信息

Twig\Error\SyntaxError: 意外的标点符号 token "("(预期是“打印语句结束”)。位于 Twig\TokenStream->expect()

问题原因

  1. Twig 3.x语法严格性提升:Drupal 10使用Twig 3.x版本,对参数分隔的空格要求更严格,原代码中t过滤器的两个数组参数之间逗号后无空格,导致解析错误;
  2. 属性修改写法不符合规范:直接在打印语句中调用attributes.addClass()的写法,在新版Twig环境下会触发语法解析问题,正确方式是用{% do %}标签先修改属性对象。

修复后的代码

{% if 'export' in url %}
  {% do attributes.addClass('btn btn-success') %}
  <a href="{{ url }}"{{ attributes }}>
    {{ '@format export'|t({'@format': 'Export files'}, {'context': 'kjus'}) }}
  </a>
{% else %}
  {% do attributes.addClass('btn btn-success') %}
  <a href="{{ url }}"{{ attributes }}>
    {{ '@format csv'|t({'@format': 'CSV'}, {'context': 'kjus'}) }}
  </a>
{% endif %}

修复说明

  • 改用{% do %}标签调用attributes.addClass(),先修改属性对象,再在<a>标签中输出{{ attributes }},这是Drupal Twig模板修改属性的标准写法;
  • 给t过滤器的两个参数之间添加空格,符合Twig 3.x的语法要求;
  • 调整代码换行,提升可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 20:12:14