如何获得媒体
How to get media
我正在尝试使用以下代码访问文件 /component/product/card/box-standard.html.twig
中的 product.media
属性:
{{ dump(product) }}
但是 product.media
returns 的值 null
.
封面图片如预期可用 product.cover.media
,只有媒体 属性 没有结果。
我是否必须以某种方式在加载媒体的这个 twig 文件中启用它?目标是在图片类别页面中创建图片轮播以显示多张图片,而不仅仅是封面图片。
默认情况下,媒体关联在产品列表中不可用,可能是因为只需要封面图片,加载不必要的东西会降低性能。
在您的情况下,您需要加载该字段。
可以通过以下方法实现:
- Create a new subscriber 为
ProductListingCriteriaEvent
- 添加媒体协会
订阅者看起来类似于:
class AddFieldsToProductListingSubscriber implements EventSubscriberInterface {
public static function getSubscribedEvents(): array
{
return [
ProductListingCriteriaEvent::class => 'handleRequest',
];
}
public function handleRequest(ProductListingCriteriaEvent $event): void
{
$event
->getCriteria()
->addAssociation('media');
}
}
现在
{{ dump(product.media) }}
将不包含产品媒体。
我正在尝试使用以下代码访问文件 /component/product/card/box-standard.html.twig
中的 product.media
属性:
{{ dump(product) }}
但是 product.media
returns 的值 null
.
封面图片如预期可用 product.cover.media
,只有媒体 属性 没有结果。
我是否必须以某种方式在加载媒体的这个 twig 文件中启用它?目标是在图片类别页面中创建图片轮播以显示多张图片,而不仅仅是封面图片。
默认情况下,媒体关联在产品列表中不可用,可能是因为只需要封面图片,加载不必要的东西会降低性能。
在您的情况下,您需要加载该字段。
可以通过以下方法实现:
- Create a new subscriber 为
ProductListingCriteriaEvent
- 添加媒体协会
订阅者看起来类似于:
class AddFieldsToProductListingSubscriber implements EventSubscriberInterface {
public static function getSubscribedEvents(): array
{
return [
ProductListingCriteriaEvent::class => 'handleRequest',
];
}
public function handleRequest(ProductListingCriteriaEvent $event): void
{
$event
->getCriteria()
->addAssociation('media');
}
}
现在
{{ dump(product.media) }}
将不包含产品媒体。