我正在运行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
我已经看过通过作曲家安装twig-bridge / symfony twig,但我似乎无法摆脱错误信息。
我是否只是使用树枝过滤器"渲染"?
更新:17/08/17
在尝试使用Drupal 8&#39的twig_tweak模块提供的drupal_block函数时,我也遇到了同样的问题。
答案 0 :(得分:2)
上面代码中的问题是你的Twig扩展类正在扩展内部的Drupal Twig扩展类。这打破了Drupal核心添加的Twig扩展,这就是你得到错误的原因。
要解决此问题,您应该使您的Twig扩展扩展Twigs内部Twig扩展类。你的课应该这样定义:
class MyExtension extends \Twig_Extension {
进行更改后,您还可以从MODULE.services.yml中删除为该类设置的参数
答案 1 :(得分:0)
我在Drupal上下文中没有看到这个,但是在使用Twig的其他平台上工作时,我发现在平台设置过程的早期发生错误时会发生类似的问题。
典型的事件顺序如下:
如果我以前有这个,事实证明很难诊断实际错误是什么。
"正确"解决方案一直是修改错误页面模板,以便它们很小并且不使用任何非核心树枝函数。但如果您在页面加载过程中早期发生崩溃,那么实际上很难实现。
在第一种情况下,我通过调试系统并捕获传递给模板的数据来解决它。这向我展示了真正的错误是什么。解决该错误然后停止发生树枝错误并允许我进入系统。
我不确定你所看到的是否和我所看到的一样,但听起来很相似所以我希望这会有所帮助。