2017-11-02 9 views
0

나는 다음과 같은 나뭇 가지 확장자를 만들었습니다 : Symfony 나뭇 가지 오류 : 알 수없는 "^ macro_name ^"기능. "^ similar_function_name ^"을 원하셨습니까?

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; 
    } 
} 

그리고 난 다음 매크로했던 내 나뭇 가지 템플릿을 통해

:

{% 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"? 
+1

[수입 (https://stackoverflow.com/a/47014154/446594) 매크로 먼저 – DarkBee

답변

1

그냥 당신이 there을 설명 템플릿이 어떻게 사용하고자 할 때 : 당신은 당신이 원하는대로 넣을 수 있습니다 macro_template 대신에

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

:

{% import _self as macro_template %} 

는 그 후 당신은로 사용할 수 있습니다. 대신에 {% endmacro article_route %}을 변경 {% endmacro MACRO_NAME %}의

1

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

자세한 Named Macro End-Tags