Symfony2 — Расширение Twig не существует в файле Twig

#symfony #service #twig

#symfony #Обслуживание #twig

Вопрос:

Я пытаюсь зарегистрировать (прочитайте документы) расширение Twig, и все кажется правильным, за исключением того, что оно не найдено в файле Twig.

Получаю следующую ошибку:

The function "getPostCount" does not exist in AcmeDemoBundle:Page:index.html.twig at line 17

Может кто-нибудь показать мне, что я делаю неправильно?

services.yml

 acme.twig.acme_extension:
    class: AcmeDemoBundleTwigPostExtension
    tags:
        - { name: twig. extension }
    arguments:
        em: "@doctrine.orm.entity_manager"
  

PostExtension.php

 class PostExtension extends Twig_Extension
{
private $em;

public function __construct(EntityManager $em)
{
    $this->em  = $em;
}

public function getFilters()
{
    return array(
    );
}

public function getFunctions()
{
    return array(
        'getPostCount' => new Twig_Function_Method($this,'getPostCount')
    );
}

public function getPostCount($year, $month)
{
    return $this->$em->getRepository('AcmeDemoBundle:Post')
        ->getPostCountsByMonth($year, $month);
}

public function getName()
{
    return 'post_extension';
}
}
  

Twig

 {{ getPostCount('2014', 'July') }}
  

Ответ №1:

В services.yml:

Удалите лишнее пространство в twig.extension.

  tags:
    - { name: twig.extension }