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>