能否为含自定义CMS块的Shopware购物体验页面添加子路由?
Shopware购物体验页面子路由与自定义控制器相关问题解答
1. 能否为购物体验页面添加子页面及自定义控制器动作?
可以实现,需要结合Shopware的路由机制和插件自定义配置:
- 购物体验页面的默认路由由Shopware自动生成,要添加子路由,需在插件中注册自定义路由,确保路由优先级高于默认CMS路由,避免被拦截。
- 示例路由配置(插件的
routes.xml):
<route id="frontend.myplugin.gallery.detail" path="/gallery/{slug}" methods="GET"> <default _controller="MyPluginController::detailAction" /> <default _seo="true" /> </route>
- 在自定义控制器的动作中,可加载父购物体验页面的布局数据,同时注入自定义元素的配置(比如读取对应slug的图片详情),渲染时复用原页面布局,仅替换自定义元素的内容。
2. 画廊列表/详情路由的需求范畴判断
这种需求需要结合自定义CMS块和自定义路由方案:
- 列表页
/gallery可通过购物体验页面+自定义CMS块实现:将自定义画廊列表块添加到购物体验页面,通过块的配置读取所有图片数据,这属于自定义CMS块的能力范围。 - 详情页
/gallery/flower1必须使用自定义路由+控制器:CMS块仅依附于固定页面,无法动态生成带参数的子路由。需在自定义控制器中处理slug参数,获取对应图片详情,同时可复用原购物体验页面的通用布局(如头部、尾部),仅渲染中间区域的详情内容。
内容的提问来源于stack exchange,提问作者daslicht
相关产品推荐
相关产品推荐

