如何在侧边栏导航中引入服务菜单?
问题排查与解决方案
1. 检查模板上下文数据
侧边栏和页脚的模板上下文存在差异,页脚能获取的页面数据,侧边栏可能未被传递:
- 打开分类页面控制器(如
CategoryController),确认渲染侧边栏时是否传入了服务菜单所需的页面数据(比如servicePages这类变量) - 检查
my-service-menu.html.twig是否依赖某个全局变量,而侧边栏模板未加载该变量
2. 验证模板路径与命名空间
- 确认
@Storefront命名空间是否正确指向主题模板目录,若使用自定义主题,路径需调整为@YourThemeName/storefront/layout/navigation/my-service-menu.html.twig - 核对模板文件是否存在于指定路径,文件名大小写是否匹配(Shopware对路径大小写敏感)
3. 调试模板变量
在my-service-menu.html.twig开头添加调试代码,确认数据是否传递到位:
{{ dump(servicePages) }} {# 替换为菜单依赖的实际变量名 #}
若输出为空,说明数据未传递到侧边栏模板,需在分类页面的模板或控制器中补充数据传递逻辑。
4. 清理缓存与检查模板继承
- 执行
bin/console cache:clear命令清理Shopware缓存,确保模板修改被加载 - 确认侧边栏模板是否正确继承父模板,未覆盖上下文数据的传递逻辑
5. 检查页面权限与状态
- 确认服务菜单中的页面是否设置了正确的访问权限,是否处于“已发布”状态
- 检查页面的分类关联设置,确保这些页面在分类页面上下文允许被列出
内容的提问来源于stack exchange,提问作者simon
相关产品推荐
相关产品推荐

