Symfony2 - конкатенация веток в Assetic

Подобные вопросы уже существуют (объединение в twig, конкатенация в Assetic), но мне это не помогает.

Я пытаюсь отобразить изображение из пути и имени изображения, переданного с контроллера:

{% image 'bundles/index/uploads/logos/' ~ fileName %}
<img src="{{ asset_url }}" />
{% endimage %}

И я получаю сообщение об ошибке:

Unexpected token "operator" of value "~"

Как побороть эту проблему? Кажется, что конкатенация не разрешена в {% image %}

P.S.

<img src="{{ asset('bundles/index/uploads/logos/' ~ university.getLogo) }}" />

Это отлично работает, но я должен Assetic из-за фильтра и управления выводом.


person Ignas Damunskis    schedule 17.06.2016    source источник
comment
Никогда не видел тег image, а как насчет {% image ('bundles/index/uploads/logos/' ~ fileName) %}   -  person Rvanlaak    schedule 17.06.2016
comment
@Rvanlaak не работает   -  person Ignas Damunskis    schedule 23.07.2016
comment
Не могли бы вы уточнить тег image? Никогда раньше не видел: twig.sensiolabs.org/documentation   -  person Rvanlaak    schedule 25.07.2016


Ответы (1)


Вы должны определить свой фильтр изображения как функцию Twig и когда его использовать. Например (код из документации)

# app/config/config.yml
assetic:
  filters:
      jpegoptim:
          bin: path/to/jpegoptim
  twig:
      functions:
          jpegoptim: ~

В вашем шаблоне ветки:

<img src="{{ jpegoptim('@AppBundle/Resources/public/images/' ~ fileName) }}" alt="Example"/>

Вы можете найти больше информации в документации Symfony: http://symfony.com/doc/current/assetic/jpeg_optimize.html#shorter-syntax-twig-function

person Aurimas    schedule 12.09.2016