2017-07-17 49 views
21

我正在運行drupal 8,composer和npm執行gulp任務。'Twig_Error_Syntax'消息'未知'呈現「filter

當我運行NPM開始..我的任務管理器:我碰到下面的堆棧跟蹤:

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 

我已經看了通過作曲家安裝樹枝橋/ symfony的樹枝,但我似乎無法到擺脫錯誤信息。

我只是溝渠使用樹枝過濾器「渲染」?


更新:14/08/17

試圖通過使用Drupal的8的twig_tweak模塊提供的drupal_block功能時,我也已經遇到了同樣的問題。

+1

看起來'render'是drupal本身添加的'Twig_Filter'。所以你需要找出爲什麼'filter'在你的安裝中不可用。 [源代碼](https://www.drupal.org/node/2448219) – DarkBee

+3

您是否嘗試過按照Drupal堆棧交換上的這個問題列出的步驟? https://drupal.stackexchange.com/questions/184184/error-when-creating-a-custom-twig-filter – mickburkejnr

+0

我也許有點晚了,但你嘗試模塊竹樹枝?您可以使用'{{bamboo_render_block('my_custom_block')}}或系統塊使用實體呈現器'{{bamboo_render_entity('block','my_theme_messages')}}'渲染自己的塊。 https://www.drupal.org/project/bamboo_twig –

回答

0

上面的代碼中的問題是,你的Twig擴展類擴展了內部的Drupal Twig擴展類。這打破了Drupal核心添加的Twig擴展,這就是爲什麼你會收到錯誤。

要解決這個問題,你應該讓你的枝條擴展延伸枝條內部的枝條擴展類。您的類應該定義是這樣的:

class MyExtension extends \Twig_Extension { 

做出這樣的轉變後,您還可以刪除從MODULE.services.yml

link

0

我從來沒見過的那類設置參數這在Drupal上下文中,但與使用Twig的其他平臺一起工作時,我發現在平臺安裝過程早期發生錯誤時會出現類似的問題。

事件的典型順序是這樣的:

  • 平臺開始運行自身的引導;加載CMS核心等等。
  • 在這個過程的早期階段,它遇到了一個錯誤。
  • 然後它會嘗試呈現錯誤頁面。
  • 但是,錯誤頁面使用了枝條模板。
  • 啓動過程尚未加載模板中使用的所有分支擴展。
  • 繁榮,你會得到一個枝條錯誤,指出「未知的枝條功能」,而不是真正的錯誤信息。

當我以前有過這種情況時,事實證明很難診斷出實際的錯誤。

「正確的」解決方案是修改錯誤頁面模板,以使它們最小化並且不使用任何非核心的小枝函數。但是,如果您在頁面加載過程的早期發生崩潰,實際上很難做到這一點。

在第一種情況下,我通過調試系統並捕獲傳遞給模板的數據來解決它。這告訴我什麼真正的錯誤是。解決該錯誤,然後停止發生枝條錯誤,並允許我進入系統。

我不確定您所看到的是與我所看到的相同的東西,但它聽起來很相似,所以我希望這會有所幫助。