2017-11-28 7 views
0

Ich möchte einen Zweig Funktionserweiterung zu schaffen, die einen Zweig Vorlage für ein Menü machenZweig Erweiterung machen html

/** 
* Return the functions registered as twig extensions 
* 
* @return array 
*/ 
public function getFunctions() 
{ 
    return array(
     new \Twig_SimpleFunction('my_menu', array($this, 'myMenu')), 
    ); 
} 

meine Funktion

/** render a dropdown with link to conversation 
* @return string 
*/ 
public function myMenu(\Twig_Environment $environment, $typeMenu, $menuId) 
{ 

    return $environment->render('@menuDopdown.html.twig', array(
     'typeMenu' => $typeMenu, 
    )); 
} 

, aber wenn ich die Funktion aufrufen, habe ich eine Ausnahme für parametre 1

{{ my_menu(4,1280) }} 

Type error: Argument 1 passed to MenuBundle\Twig\TwigMenuExtension::myMenu() must be an instance of Twig_Environment, integer given, called in ...\app\cache\dev\twig\07\07a15176de77b3d862b64747d9728e117749b97e55d1082eb0f0eec4ffaf12d8.php on line 164

Antwort

2

In dieser Funktion vor Ihrer MyMenu Funktion, so Zweig automatisch

die Umgebung für mehr Details
public function getFunctions() 
{ 
return array(
    new \Twig_SimpleFunction(
     'myMenu', 
     array($this, 'myMenu'), 
     array('needs_environment' => true) 
    ), 
); 
} 

oder überprüfen Sie diesen Link wird vorübergehen Render template from twig extension

Verwandte Themen