Symfony 如何在Assetic中使用变量

Symfony 如何在Assetic中使用变量,symfony,twig,assetic,Symfony,Twig,Assetic,我搜索了很多,但找不到解决方案: {% for i in 1..6 %} <li> {% image '@MyBundle/Resources/public/images/college/demo/facilities/thumbs/laboratory/'~i~'.jpg' %} <img class="facThumb" src="{{ asset_url }}" alt="Facilitiy"/> {% endimage %

我搜索了很多,但找不到解决方案:

{% for i in 1..6 %}
   <li>
      {% image '@MyBundle/Resources/public/images/college/demo/facilities/thumbs/laboratory/'~i~'.jpg' %}
      <img class="facThumb" src="{{ asset_url }}" alt="Facilitiy"/>
      {% endimage %}
   </li>
{% endfor %}
{1..6%中的i的%
  • {%image'@MyBundle/Resources/public/images/college/demo/facilities/thumbs/laboratory/'~i~'.jpg%} {%endimage%}
  • {%endfor%}
    图像的名称应该是动态的。请帮忙

    上述代码引发错误:

    值为“~”的意外标记“运算符”

    解决方案:

    根据@Nic发布的内容(公认答案),唯一的解决办法似乎是:

    {% for i in 1..6 %}
        <li>
            <img src="{{ asset('bundles/digicreekil/images/college/demo/facilities/thumbs/laboratory/t'~i~'.jpg') }}" alt='demo'/>
        </li>
    {% endfor %}
    
    {1..6%中的i的%
    
  • {%endfor%}
    您不能在Assetic中使用变量(因此也不能在
    {%image%}
    标记中使用变量)。 原因是,根据(同意的创造者):

    (…)该Assetic需要能够解析细枝模板并提取其中定义的任何资产。如果在标记中使用变量,则这是不可能的

    加上:

    在为此使用CLI命令时,而不是在呈现页面时,将转储资产。所以你不能使用变量,因为你没有它们的值

    有关完整的对话,请参阅

    请记住,Assetic在您运行
    app/console Assetic:dump
    时创建并优化资产,而不是在实际呈现页面时。因此,它无法知道任何值,只能处理静态资产

    因此,如果要使用动态资产,必须执行以下操作:

    {% for i in 1..6 %}
       <li>
          <img class="facThumb" src="{{ asset('images/college/demo/facilities/thumbs/laboratory/'~i~'.jpg') }}" alt="Facilitiy"/>
       </li>
    {% endfor %}
    
    (等等)


    这样,您将不得不复制相同的代码6次,但它允许您使用Assetic。

    无法使用静态代码,因为图像名称来自数据库。我想我一直在使用twigs asset()函数。我必须在assetic图像优化上妥协。谢谢你的详细解释。那么你在问题中给出的例子,不是你真正想要达到的吗?在这种情况下,您唯一的选择就是使用Twig的
    asset()
    函数。如果你允许用户上传图像到你的应用程序中,我建议在上传图像时在那里进行优化。我有没有办法用php在细枝文件中插入assetic细枝标签?我不这么认为。从我所读到的内容来看,我相信Assetic只是简单地扫描细枝模板中的静态资产URL。它不解释任何细枝、PHP或其他逻辑。因此,我建议使用
    asset()
    函数,自己进行优化。
    <li>
        {% image '@MyBundle/Resources/public/images/college/demo/facilities/thumbs/laboratory/1.jpg' %}
        <img class="facThumb" src="{{ asset_url }}" alt="Facilitiy"/>
        {% endimage %}
    </li>
    <li>
        {% image '@MyBundle/Resources/public/images/college/demo/facilities/thumbs/laboratory/2.jpg' %}
        <img class="facThumb" src="{{ asset_url }}" alt="Facilitiy"/>
        {% endimage %}
    </li>
    <li>
        {% image '@MyBundle/Resources/public/images/college/demo/facilities/thumbs/laboratory/3.jpg' %}
        <img class="facThumb" src="{{ asset_url }}" alt="Facilitiy"/>
        {% endimage %}
    </li>