枝条扩展渲染html

时间:2017-11-28 11:26:51

标签: php symfony twig

我想创建一个枝条功能扩展,为菜单提供枝条模板

/**
 * 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行

1 个答案:

答案 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