我想创建一个枝条功能扩展,为菜单提供枝条模板
/**
* Return the functions registered as twig extensions
*
* @return array
*/
public function getFunctions()
{
return array(
new \Twig_SimpleFunction('my_menu', array($this, 'myMenu')),
);
}
我的功能
/** 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,
));
}
但是当我调用该函数时,我有一个参数1的执行
{{ my_menu(4,1280) }}
类型错误:参数1传递给 MenuBundle \ Twig \ TwigMenuExtension :: myMenu()必须是。的实例 Twig_Environment,给定整数,调用 ... \程序\缓存\ dev的\树枝\ 07 \ 07a15176de77b3d862b64747d9728e117749b97e55d1082eb0f0eec4ffaf12d8.php 在第164行
答案 0 :(得分:2)
在myMenu函数之前添加此函数,因此twig将自动传递环境
public function getFunctions()
{
return array(
new \Twig_SimpleFunction(
'myMenu',
array($this, 'myMenu'),
array('needs_environment' => true)
),
);
}
或查看此链接了解更多详情Render template from twig extension