我想在渲染模板之前添加我的控制代码。
示例:有模板:user.html.twig
控制器:
return $this->render('....:user.html.twig', array(/* variables */))
我想在渲染模板之前添加其他变量。
我想在渲染模板之前添加我的控制代码。
示例:有模板:user.html.twig
控制器:
return $this->render('....:user.html.twig', array(/* variables */))
我想在渲染模板之前添加其他变量。
您可以覆盖Symfony\Bundle\FrameworkBundle\Controller\Controller::render
控制器中的方法并传递其他变量或在那里或 Twig 中安排一些事件挂钩。
解决这个问题:
创建一个新的 Twig 扩展并注册这个扩展。
例子:
树枝扩展:
class UserExtension extends \Twig_Extension
{
/**
* Get globals variables
*
* @return array
*/
public function getGlobals()
{
return array(
// Other variables
);
}
}
将扩展注册为服务。
<service id="sps.twig.user_extension" class="SPS\Bundles\HomeBundle\Twig\Extensions\UserExtension">
<tag name="twig.extension" />
</service>