如何在Shopware App Script中获取应用配置?调用后始终返回null
解决Shopware App Script获取配置返回null的问题
以下是几个排查和解决方向:
确认配置项定义与后台设置
检查应用manifest.xml中的配置字段,确保name属性确实是myInt,示例配置定义:<config> <field type="int" name="myInt"> <label>My Integer Config</label> <defaultValue>10</defaultValue> </field> </config>同时要确保在Shopware后台的应用配置页面,已经保存过该配置的值(即使是默认值,首次安装后可能需要手动保存一次才会写入数据库)。
检查配置键的完整路径
services.config.app()默认读取当前应用的配置,但如果存在命名空间冲突或上下文问题,直接传入键名可能无法匹配。可以尝试使用完整的配置键,格式为{应用技术名称}.myInt,比如应用技术名称是MyCustomApp:{# @var services \Shopware\Core\Framework\Script\ServiceStubs #} {% set myInt = services.config.app('MyCustomApp.myInt') %}应用技术名称要和
manifest.xml里的name字段完全一致。验证脚本执行上下文与调试
确保脚本在允许访问配置服务的钩子中执行,部分钩子可能有服务访问限制。可以在开发环境中添加调试代码,查看所有可用的应用配置:{# 仅在开发环境使用,输出所有应用配置 #} {% dump(services.config.app()) %}通过
dump结果确认目标配置键是否存在。版本兼容性检查
services.config.app()方法是Shopware 6.4.x及以后版本才支持的,如果你的Shopware版本较低,需要改用services.config.get()并传入完整配置键:{% set myInt = services.config.get('MyCustomApp.myInt') %}
内容的提问来源于stack exchange,提问作者Marc Cheng
相关产品推荐
相关产品推荐

