我做了以下小枝扩展:
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;
}
}
在我的Twig模板上,我做了以下宏:
{% macro macro_name(url) %}
{{ path('route_name',{'chunk':simiral_function_name(url)}) }}
{% endmacro macro_name %}
但是当我在我的模板上访问它时,例如:
<a href="{{macro_name("http://example.com/path/files/somefile")}}"></a>
我收到以下错误:
Unknown "macro_name" function. Did you mean "similar_function_name"?
答案 0 :(得分:1)
当您想要使用模板时,请执行source code:
所述的操作{% import _self as macro_template %}
之后您可以将其用作:
<a href="{{macro_template.macro_name("http://example.com/path/files/somefile")}}"></a>
代替macro_template
你可以放任何你想要的东西。
答案 1 :(得分:1)
而非{%endmacro article_route%}更改为{%endmacro macro_name%}
{% macro macro_name(url) %}
{{ path('route_name',{'chunk':simiral_function_name(url)}) }}
{% endmacro macro_name %}