Sylius shop - 如何在标题中的弹出购物车中呈现产品图像?

问题描述 投票:0回答:1

在模板主题/xxx/templates/bundles/SyliusShopBundle/Cart/Widget/_popup.html.twig 是购物车中渲染的商品。 有变量 item.product, item.quantity

有什么方法可以渲染产品图像,例如 item.image 吗?

我转储了变量 {{dump(item.product)}} 并查看图片集

sylius
1个回答
0
投票

首先,您需要从产品中检索您想要显示的一张图像,您可以这样做,例如通过 twig 中的

image.type
按类型过滤图像,您可以使用
product.imagesByType('type')
然后您可以使用
imagine_filter
以适当的分辨率检索图像路径,例如
product.imagesByType('thumbnail').first.path|imagine_filter(filter|default('sylius_shop_product_tiny_thumbnail'))

您可以在 https://docs.sylius.com/en/latest/cookbook/images/images.html

找到 sylius 中定义的所有图像类型

如何在 sylius 代码中找到示例,例如此处 -> https://github.com/Sylius/Sylius/blob/f0ea6668bde5163d7e5a5b0f1ae28301ce6a9b14/src/Sylius/Bundle/ShopBundle/Resources/views/Product/ _mainImage.html.twig

{% if product.imagesByType('thumbnail') is not empty %}
    {% set path = product.imagesByType('thumbnail').first.path|imagine_filter(filter|default('sylius_shop_product_thumbnail')) %}
{% elseif product.images.first %}
    {% set path = product.images.first.path|imagine_filter(filter|default('sylius_shop_product_thumbnail')) %}
{% else %}
    {% set path = asset('assets/shop/img/200x200.png') %}
{% endif %}

<img src="{{ path }}" {{ sylius_test_html_attribute('main-image') }} alt="{{ product.name }}" class="ui bordered image" />

© www.soinside.com 2019 - 2024. All rights reserved.