Позвони в сервис из шаблона веточки в symfony 4 - PullRequest
0 голосов
/ 22 сентября 2019

Я хотел бы знать, как я могу вызвать сервис из шаблона ветки непосредственно в Symfony 4. Я использую его в каждом действии следующим образом:

public function indexAction(TranslatorInterface $translator, NavigationGenerator $navigationGenerator)
    {

        return $this->render('index/index.html.twig', [
            'navigationItems'=>$navigationGenerator->getNavigation(self::class)
        ]);
    }

В шаблоне я называю это:

{% for navigationItem in navigationItems.topNavigation['left'] %}
    <a href="{{ navigationItem.route }}">{{ navigationItem.label }}</a>
{% endfor %}

В более ранних версиях начальной загрузки я мог определить сервис как глобальный объект в config.yml и использовать его непосредственно из ветки, например:

{ NavigationGenerator.getNavigation(ControllerName) }

Любой намек, как это сделать в Symfony4?Больше нет config.yml.

1 Ответ

0 голосов
/ 22 сентября 2019

Вы все еще можете определить глобальные переменные ветки - они будут просто использоваться с остальной частью конфигурации Twig в config/packages/twig.yaml.

Альтернатива, и, возможно, лучшее место для размещения, которое может быть Функция веточки .Служба, которая определяет функцию (или фильтры), является такой же службой, как и контроллеры, и поэтому вы должны указать свой NavigationGenerator и все, что вам нужно, в конструкторе, для использования в функции, которая вызывается изПрут.

...