由於升級到Twig 2.0,我收到錯誤消息Accessing Twig_Template attributes is forbidden
。被引用的行包含{{ include }}
或宏調用。Twig 2.0錯誤消息「訪問Twig_Template屬性被禁止」
9
A
回答
14
在枝杈2.0 {{ import }}
「編輯宏沒有繼承到子模板了,看到https://github.com/twigphp/Twig/issues/2336
解決方案:你需要在每一個.twig文件導入所需的宏(S)。
如果錯誤顯示含有{{ include }}
或{{ extends }}
行了,你要看看交代所包含/擴展模板,並導入宏在那裏。
0
如果你有很多使用你的宏的Twig文件,它可能更容易和更容易出錯定義全局小枝函數到a Twig Extension。這樣你就不需要在每個文件中導入宏(這可能會在將來的Twig版本中修復)。
舉例來說,當我有
{% macro error(message, dismissible=true) %}
{# Error display code #}
{% endmacro %}
我現在已經在一根樹枝擴展所定義的所謂UtilitiesExtension
以下功能:
public function getFunctions()
{
return array(
// ...
new \Twig_SimpleFunction('error', array($this, 'error')),
);
}
public function error($message, $dismissible = true) {
return $this->twig->render('patterns/utils/error.html.twig', [
'text' => $message,
'limit' => $dismissible,
]);
}
然後,您需要更換與函數名的宏調用;請注意,您不能在函數名稱中使用點。
該解決方案非常乾淨,因爲Twig宏被認爲是PHP函數的等價物。當然這應該適應您的需求。
相關問題
- 1. 禁止訪問中的錯誤消息
- 2. TFSBuild錯誤消息 - 訪問被阻止?
- 3. 錯誤:訪問被拒絕:(403)禁止?
- 4. HTTP 403.9 - 訪問被禁止:錯誤
- 5. php apache錯誤信息 - 禁止訪問
- 6. 錯誤禁止訪問
- 7. 訪問禁止!錯誤403
- 8. 訪問禁止的錯誤
- 9. Django消息屬性錯誤
- 10. 屬性錯誤消息
- 11. 訪問嵌套屬性字段的錯誤消息
- 12. 訪問錯誤消息
- 13. 403禁止消息通過OAuth 2.0
- 14. 訪問被禁止!在LAMPP
- 15. Xampp訪問被禁止php
- 16. 訪問被禁止在LAMP
- 17. 訪問被禁止Node.js
- 18. 目錄訪問被禁止
- 19. Symfony/Twig中的Supress錯誤消息?
- 20. TWIG無法訪問對象屬性
- 21. 防止Twig從注入錯誤信息
- 22. NServiceBus和Ninject - 訪問NSB消息屬性
- 23. play 2.0如何從模型中訪問錯誤消息
- 24. Python屬性訪問錯誤
- 25. 屬性訪問器錯誤
- 26. 未獲取禁止的屬性錯誤。
- 27. 「禁止您無權訪問/在此服務器上。」錯誤消息
- 28. 清除禁用屬性更改/隱藏的jquery.validate錯誤消息
- 29. Firebase消息傳遞錯誤:消息傳遞/權限被阻止
- 30. lampp錯誤403 - 禁止訪問