用变量扩展Twig


Extend Twig with variables

我使用Twig,在每个文件中都有一个带有一些变量的头文件。如何在每个文件中包含头文件而不总是调用变量?

我有一个文件,我扩展了layout。html。twig在这个布局中我扩展了header。html。twig

在header中,我有一些控制器发送的变量。但是只有当我转到头部视图时,变量才会被执行…

我怎么做包括标题视图与小枝?

尽管很难理解您到底在寻找什么,但您可能正在寻找一种设置全局变量的方法。

Twig globals允许您设置全局变量。

设置静态变量:
# app/config/config.yml
twig:
    # ...
    globals:
        variables: {}

如果你需要更多的静态变量,创建你自己的扩展:

<?php
namespace Example'CommonBundle'Twig;
use 'Doctrine'ORM'EntityRepository;
class TooltipsExtension extends 'Twig_Extension
{
    protected $bookingsTooltip;
    public function __construct(EntityRepository $bookingsTooltip)
    {
        $this->bookingsTooltip = $bookingsTooltip;
    }
    public function getGlobals()
    {
        return array(
            'tooltips' => $this->bookingsTooltip->getTooltips(),
        );
    }
    public function getName()
    {
        return 'tooltips';
    }
}

注册小枝扩展:

# app/config/services.yml
example.tooltips_extension:
    class: Example'CommonBundle'Twig'TooltipsExtension
    public: false
    arguments:
        - @example.tooltips
    tags:
        - { name: twig.extension }

访问html中的变量:

{{ dump(tooltips) }}