2017-07-17 12 views
21

Tôi đang chạy drupal 8, composer và npm để thực hiện các tác vụ gulp.'Twig_Error_Syntax' với thông báo 'Không xác định' hiển thị "bộ lọc

Khi tôi chạy NPM bắt đầu .. Task Manager của tôi: Tôi nhận stack trace sau:

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 

tôi đã xem xét cài đặt cành lá cầu/symfony cành lá qua nhà soạn nhạc nhưng tôi dường như không thể thoát khỏi thông báo lỗi.

Tôi chỉ cần sử dụng bộ lọc cành "render"?


Cập nhật: 14/08/17

Tôi cũng đã chạy vào cùng một vấn đề khi cố gắng sử dụng chức năng drupal_block cung cấp thông qua mô-đun twig_tweak Drupal 8 của.

+1

Có vẻ 'render' là một' Twig_Filter' được thêm bởi chính drupal. Vì vậy, bạn sẽ cần phải tìm hiểu lý do tại sao 'filter' không có sẵn trong bản cài đặt của bạn. [source] (https://www.drupal.org/node/2448219) – DarkBee

+3

Bạn đã thử làm theo các bước được nêu trong câu hỏi này trên trao đổi stack Drupal chưa? https://drupal.stackexchange.com/questions/184184/error-when-creating-a-custom-twig-filter – mickburkejnr

+0

Tôi có thể hơi muộn nhưng bạn đã thử mô-đun Bamboo Twig? Bạn có thể kết xuất khối của riêng mình bằng cách sử dụng '{{bamboo_render_block ('my_custom_block')}}' hoặc khối hệ thống bằng cách sử dụng trình kết xuất thực thể '{{bamboo_render_entity ('block', 'my_theme_messages')}}'. https://www.drupal.org/project/bamboo_twig –

Trả lời

0

Sự cố trong mã ở trên là lớp mở rộng Twig của bạn đang mở rộng lớp mở rộng Drupal Twig nội bộ. Điều đó phá vỡ các phần mở rộng Twig được thêm vào bởi lõi Drupal và đó là lý do tại sao bạn nhận được lỗi.

Để khắc phục điều này, bạn nên làm cho tiện ích mở rộng Twig của bạn mở rộng Twigs nội bộ Twig mở rộng lớp. lớp học của bạn nên được định nghĩa như thế này:

class MyExtension extends \Twig_Extension { 

Sau khi thực hiện sự thay đổi đó, bạn cũng có thể loại bỏ lập luận đặt ra cho lớp đó từ MODULE.services.yml

link

0

Tôi đã không nhìn thấy điều này trong ngữ cảnh Drupal, nhưng làm việc với các nền tảng khác sử dụng Twig, tôi đã thấy các vấn đề tương tự xảy ra khi một lỗi xảy ra sớm trong quá trình thiết lập nền tảng.

Trình tự điển hình của sự kiện là như thế này:

  • Nền tảng bắt đầu chạy khởi động của nó; tải lõi CMS, v.v.
  • Tại một số thời điểm sớm trong quá trình này, nó sẽ xảy ra lỗi.
  • Sau đó, nó cố gắng hiển thị trang lỗi.
  • Tuy nhiên, trang lỗi sử dụng mẫu Twig.
  • Quy trình khởi động chưa tải tất cả các phần mở rộng ghép được sử dụng trong mẫu.
  • Bùng nổ, bạn gặp lỗi twig cho biết "chức năng Twig không xác định" thay vì thông báo lỗi thực.

Khi tôi đã có điều này trước đây, nó đã chứng minh rất khó để chẩn đoán lỗi thực tế là gì.

Giải pháp "đúng" là sửa đổi các mẫu trang lỗi để chúng tối thiểu và không sử dụng bất kỳ chức năng ghép lõi nào. Nhưng nếu bạn đang gặp sự cố sớm trong quá trình tải trang, thật khó để thực sự làm điều đó.

Trong trường hợp đầu tiên, tôi giải quyết nó bằng cách gỡ lỗi hệ thống và bẫy dữ liệu nào được truyền vào mẫu. Điều này cho tôi biết số lỗi thực sự của là gì. Giải quyết lỗi đó sau đó dừng lỗi twig xảy ra và cho phép tôi vào hệ thống.

Tôi không biết chắc liệu những gì bạn nhìn thấy có giống như những gì tôi nhìn thấy hay không nhưng nó có vẻ tương tự vì vậy tôi hy vọng điều này sẽ hữu ích.

Các vấn đề liên quan