简体   繁体   English

Symfony Twig错误:未知的“ ^ macro_name ^”函数。 您是说“ ^ similar_function_name ^”吗?

[英]Symfony Twig Error: Unknown “^macro_name^” function. Did you mean “^similar_function_name^”?

I have made the following twig extention: 我做了以下的小树枝扩展:

class MyExtentions extends \Twig_Extension
{
   public function getFunctions()
   {
       return array(
           new \Twig_SimpleFunction('simiral_function_name', array($this, 'someFunction'),array('needs_environment' => true)),
       );
   }


   public function someFunction($url)
   {
       $url=parse_url($url,PHP_URL_PATH);
       $url=explode('/',$url);

       $params="";

       foreach($item as $key=> $url){
           $params.="_".$item;
       }

       return $params;
   }
}

And over my Twig Template I did the following macro: 在我的Twig模板上,我做了以下宏:

{% macro macro_name(url) %}
    {{ path('route_name',{'chunk':simiral_function_name(url)}) }}
{% endmacro   macro_name %}

But when over my template I access it eg: 但是当我在模板上访问时,例如:

<a href="{{macro_name("http://example.com/path/files/somefile")}}"></a>

I get the following error: 我收到以下错误:

Unknown "macro_name" function. Did you mean "similar_function_name"?

Just when you want to use the template do as described there : 只要您想使用模板,请按照此处所述进行操作:

{% import _self as macro_template %}

Afterwards you can use it as: 之后,您可以将其用作:

<a href="{{macro_template.macro_name("http://example.com/path/files/somefile")}}"></a>

In place of macro_template you can put whatever you want. 可以代替macro_template放置任何您想要的东西。

instead of {% endmacro article_route %} change to {% endmacro macro_name %} 代替{%endmacro article_route%}更改为{%endmacro macro_name%}

{% macro macro_name(url) %}
    {{ path('route_name',{'chunk':simiral_function_name(url)}) }}
{% endmacro macro_name %} 

more details Named Macro End-Tags 更多详细信息命名宏结束标签

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM