You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shopware 6自定义分页组件:后续页面链接标题为空问题

解决Shopware 6自定义分页组件标题空白问题

问题原因

你当前依赖的page.header.navigation.active变量仅在分类首页(第一页)有效,分页页面(第二页及以后)的控制器上下文没有注入这个活跃导航实体,导致变量为空,标题无法渲染。

解决方案

换用通过currentNavigationId直接从导航仓库获取实体的方式,这种方式不依赖页面上下文,所有分页页面都能稳定拿到导航名称。

修改后的Twig代码

{% for page in 1..totalPages %}
    {# 直接将分页参数p传入seoUrl,自动生成正确的SEO链接 #}
    {% set seoUrl = seoUrl('frontend.navigation.page', { 
        navigationId: currentNavigationId, 
        p: page 
    }) %}

    {% if currentNavigationId is defined %}
        {# 通过导航仓库根据ID获取实体 #}
        {% set navigationEntity = services.repository('navigation').searchById(currentNavigationId, context) %}
        <a href="{{ seoUrl }}" title="{{ navigationEntity.translated.name }}">{{ page }}</a>
    {% endif %}
{% endfor %}

关键说明

  1. 避免手动拼接URL参数:seoUrl函数会自动处理参数编码和SEO路由生成,直接将分页参数p传入第二个参数即可,无需手动拼接?和编码。
  2. 仓库获取实体的可靠性:services.repository('navigation')是Shopware模板中内置的仓库服务,通过searchById方法配合context(前端模板默认可用),能稳定获取到对应导航的翻译名称,不受分页页面影响。
  3. 参数传递验证:确保currentNavigationId在所有分页页面都能正确传递,这个变量通常由Shopware的路由自动注入,无需额外处理。

内容的提问来源于stack exchange,提问作者mlodhi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 17:02:11