繁体   English   中英

Shopware 6 插件 - 在插件订阅者中读取主题配置

[英]Shopware 6 Plugin - Read Theme Config in Plugin Subscriber

在 twig 中,我可以通过 theme_config 访问我的主题配置值。

我正在寻找一种在订户中干净地执行此操作的方法。

我试图通过 Shopware\Storefront\Theme\ThemeConfigValueAccessor 获取它们:

$salesChannelContext = $event->getSalesChannelContext();
$this->themeConfigAccessor->get('theme-config-value-key', $salesChannelContext, null);

但是我需要$themeId作为第三个参数,但我没有找到一种方法来获取当前 SalesChannel 的主题,而不是从数据库中读取。

有人对此案有解决方案吗? 有最佳实践方法吗?

您可以直接从请求中获取当前主题,无需为此向数据库发送 go:

$themeId = $request->attributes->get(SalesChannelRequest::ATTRIBUTE_THEME_ID);

请记住,该属性可能未设置,例如,如果请求不是店面请求。 所以你应该为$themeId添加一个 null 检查。

如果事件提供,您可以直接从订阅的事件中获取当前请求。 如果没有,您可以将request_stack服务注入您的订阅者并从那里获取当前请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM