带有"未知"消息的'Twig_Error_Syntax'呈现"过滤器"

cwi*_*ggo 23 php node.js symfony twig drupal-8

我正在运行drupal 8,composer和npm来执行gulp任务.

当我运行npm start ..我的任务管理器:我得到以下堆栈跟踪:

Fatal error: Uncaught exception 'Twig_Error_Syntax' with message 'Unknown "render" filter.' in /web/project/web/themes/emulsify/components/_patterns/04-templates/basic-page/_basic_page.twig:26
Stack trace:
#0 /web/project/web/themes/emulsify/pattern-lab/vendor/twig/twig/lib/Twig/ExpressionParser.php(481): Twig_ExpressionParser->getFilterNodeClass('render', 26)
#1 /web/project/web/themes/project_theme/pattern-lab/vendor/twig/twig/lib/Twig/ExpressionParser.php(466): Twig_ExpressionParser->parseFilterExpressionRaw(Object(Twig_Node_Expression_Name))
#2 /web/project/web/themes/project_theme/pattern-lab/vendor/twig/twig/lib/Twig/ExpressionParser.php(320): Twig_ExpressionParser->parseFilterExpression(Object(Twig_Node_Expression_Name))
#3 /web/project/web/themes/project_theme/pattern-lab/vendor/twig/twig/lib/Twig/ExpressionParser.php(212): Twig_ExpressionParser->parsePostfixExpression(Object(Twig_Node_Expression_Name))
#4 /web/project in /web/project/web/themes/project_theme/components/_patterns/04-templates/basic-page/_basic_page.twig on line 26
Run Code Online (Sandbox Code Playgroud)

我看过通过composer安装twig-bridge/symfony twig,但我似乎无法摆脱错误信息.

我是否只是使用枝条过滤器"渲染"?


更新:17/08/17

在尝试使用Drupal 8的twig_tweak模块提供的drupal_block函数时,我也遇到了同样的问题.

Max*_*kiy 2

上面代码中的问题是您的 Twig 扩展类正在扩展内部 Drupal Twig 扩展类。这破坏了 Drupal 核心添加的 Twig 扩展,这就是您收到错误的原因。

要解决此问题,您应该使 Twig 扩展扩展 Twigs 内部 Twig 扩展类。你的类应该这样定义:

class MyExtension extends \Twig_Extension {
Run Code Online (Sandbox Code Playgroud)

进行更改后,您还可以从 MODULE.services.yml 中删除为该类设置的参数

关联