Twig 不可能对字符串变量调用方法 [英] Twig impossible to invoke a method on a string variable

查看:23
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆