Twig 不可能对字符串变量调用方法 [英] Twig impossible to invoke a method on a string variable
本文介绍了Twig 不可能对字符串变量调用方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
将 "twig/twig"
更新为 "v2.4.4"
后,调用宏函数时出错.
无法在字符串变量(:ERP/timesheets:_form_part.html.twig")上调用方法(widget_prototype").
我的宏:
{% 宏 widget_prototype(widget, remove_text) %}{% 如果定义了 widget.vars.prototype %}{% set form = widget.vars.prototype %}{% 设置名称 = widget.vars.prototype.vars.name %}{% 别的 %}{% 设置表单 = 小部件 %}{% 设置名称 = widget.vars.full_name %}{% 万一 %}
调用宏部分:
{% 包含 ':ERP/timesheets:_data_content_supply_from_widget.html.twig' 和 {form:form, name:name} %}{% 宏 %}<div id="post_supplies"data-prototype="{{ _self.widget_prototype(form.supplies, 'remove'|trans({}, 'common'))|escape }}"style="margin-bottom: 5px">{% 用于 form.supplies.children %} 中的小部件{{ _self.widget_prototype(widget, 'remove'|trans({}, 'common')) }}{% 结束为 %}
如何正确调用宏?尝试在没有 _self
的情况下调用,但出现错误:未知的widget_prototype"函数.
解决方案
需要导入宏,不包含
{% import "my_macro.twig" as my_macro %}{{ my_macro.function(arg1) }}
After updating "twig/twig"
to "v2.4.4"
I have an error when calling macro function.
Impossible to invoke a method ("widget_prototype") on a string variable (":ERP/timesheets:_form_part.html.twig").
My macro:
{% macro widget_prototype(widget, remove_text) %}
{% if widget.vars.prototype is defined %}
{% set form = widget.vars.prototype %}
{% set name = widget.vars.prototype.vars.name %}
{% else %}
{% set form = widget %}
{% set name = widget.vars.full_name %}
{% endif %}
Calling macro part:
{% include ':ERP/timesheets:_data_content_supply_from_widget.html.twig' with {form:form, name:name} %}
{% endmacro %}
<div id="post_supplies"
data-prototype="{{ _self.widget_prototype(form.supplies, 'remove'|trans({}, 'common'))|escape }}"
style="margin-bottom: 5px">
{% for widget in form.supplies.children %}
{{ _self.widget_prototype(widget, 'remove'|trans({}, 'common')) }}
{% endfor %}
</div>
How to correctly call macro? Tried calling without _self
and I have the error: Unknown "widget_prototype" function.
解决方案
You need to import the macro, not include it
{% import "my_macro.twig" as my_macro %}
{{ my_macro.function(arg1) }}
这篇关于Twig 不可能对字符串变量调用方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文