注入twig变量symfony2

时间:2014-10-24 14:18:57

标签: symfony twig

我正在使用symfony,我想注入一个取自数据库的变量。到现在为止,我将变量注入如下:

twig:
   globals:
       key: value

我想创建一个监听器并由监听器注入,可能是对的吗?

1 个答案:

答案 0 :(得分:4)

是的,您可以使用侦听器自动将动态变量注入所有树枝模板。这正是框架为注入app对象所做的工作。

在此示例中,将查询项目实体,然后使其可用于所有树枝模板。

class ProjectEventListener extends ContainerAware implements EventSubscriberInterface
{
    public function onControllerProject(FilterControllerEvent $event)
    {
        ....
        // Query the project
        $project = $this->getProjectRepository()->findOneBySlug($projectSlug);

        // Twig global
        $twig = $this->container->get('twig');
        $twig->addGlobal('project',$project);
    }