我正在使用symfony,我想注入一个取自数据库的变量。到现在为止,我将变量注入如下:
twig:
globals:
key: value
我想创建一个监听器并由监听器注入,可能是对的吗?
答案 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);
}