Sylius商店:如何在头部弹出购物车中渲染商品图片?
商品图片渲染方案
当然可以渲染商品图片,既然你已经通过{{ dump(item.product) }}看到了images集合,直接从item.product.images中获取即可,以下是两种实用的Twig实现方式:
方式一:基础原生渲染
先判断图片集合是否为空,优先取标记为「主图」的图片,没有则取第一张,再通过asset()生成图片URL:
{% if item.product.images is not empty %} {# 优先筛选主图,无主图则取第一张 #} {% set productImage = item.product.images|filter(img => img.main)|first ?? item.product.images.first %} <img src="{{ asset(productImage.path) }}" alt="{{ productImage.alt|default(item.product.name) }}" class="cart-item-image" {# 可添加自定义样式类 #} /> {% endif %}
方式二:使用Sylius内置图片Helper(推荐)
Sylius提供了sylius_image函数,可自动根据配置的图片尺寸(比如small、thumbnail)生成适配的图片,更符合Sylius的生态用法:
{% if item.product.images is not empty %} {% set productImage = item.product.images|filter(img => img.main)|first ?? item.product.images.first %} {{ sylius_image(productImage, 'small') }} {% endif %}
注:'small'是你在Sylius后台配置的图片尺寸标识,可根据需求替换为其他尺寸。
内容的提问来源于stack exchange,提问作者Petr Uttendorfsky
相关产品推荐
相关产品推荐

