Php 使用带变量的Symfony Assetic函数

Php 使用带变量的Symfony Assetic函数,php,symfony,twig,templating,assetic,Php,Symfony,Twig,Templating,Assetic,一切都在这里 但我想从变量中获取文件。像这样: {% image "assets/img/sample.jpg" filter="jpegoptim" %} <img src"{{ asset_url }}"/> {% endimage %} 如果我在这个配置中使用twig jpegoptim函数 Unexpected token "name" of value "image" 模板文件: #config.yml assetic: debug:

一切都在这里

但我想从变量中获取文件。像这样:

{% image "assets/img/sample.jpg" filter="jpegoptim" %}
    <img src"{{ asset_url }}"/>
{% endimage %}
如果我在这个配置中使用twig jpegoptim函数

Unexpected token "name" of value "image"
模板文件:

#config.yml

assetic:
    debug:          '%kernel.debug%'
    use_controller: '%kernel.debug%'
    filters:
        jpegoptim:
            bin: /usr/bin/jpegoptim
            strip_all: true
            max: 80
    twig:
        functions:
            jpegoptim: ~

在官方页面的末尾有一个解决方案。他们说使用LiipImageBundle

基于Url的筛选器示例:

Notice: Undefined index: jpegoptim in . (which is being imported from "/var/www/html/myproject/app/cache/dev/assetic/routing.yml").


尝试设置一个变量
{%set name=”“%}
,然后在函数中使用该变量。只是猜测一下,由于某种原因,图像是一个保留变量名,请尝试类似{%set imagename='xyz'}的操作
#config.yml

assetic:
    debug:          '%kernel.debug%'
    use_controller: '%kernel.debug%'
    filters:
        jpegoptim:
            bin: /usr/bin/jpegoptim
            strip_all: true
            max: 80
    twig:
        functions:
            jpegoptim: ~
<img src="{{ jpegoptim("assets/img/"~image) }}/>
Notice: Undefined index: jpegoptim in . (which is being imported from "/var/www/html/myproject/app/cache/dev/assetic/routing.yml").
<img src="{{ asset('/relative/path/to/image.jpg') | imagine_filter('my_thumb') }}" />