首页 > 解决方案 > TYPO3 9.5:插件 RouteEnhancers 嵌套参数

问题描述

我在我的 TYPO3 中使用了扩展 tx_sfeventmgt_pievent,但这会生成丑陋的 URL,例如:

?tx_sfeventmgt_pievent[overwriteDemand][month]=1&tx_sfeventmgt_pievent[overwriteDemand][year]=2020&cHash=q76r9wfs0gv

我尝试将其路由到更好的东西,例如:

/2020/1(or later january)/

但嵌套的参数不会被评估。我的 config.yaml 看起来像:

routeEnhancers:
  KalenderPlugin:
    type: Plugin
    limitToPages: [45]
    namespace: 'tx_sfeventmgt_pievent'
    routePath: '/{year}/{month}/{hash}'
    _arguments:
      overwriteDemand/month: '[0-9]{1..2}'
      overwriteDemand/year: '[0-9]{4}'

pageid 45 必须在没有参数的情况下打开(扩展使用当前日期),但是当我调用 /2020/1/ 时,我希望它作为GET参数,以便扩展显示一年中的另一个月份。config.yaml 的外观如何?

标签: typo3url-routingtypo3-9.xtypo3-extensionstypo3-10.x

解决方案


config.yaml在可能不需要默认值的情况下尝试一下,但我添加了它们以显示完整的配置。

routeEnhancers:
  KalenderPlugin:
    type: Plugin
    limitToPages: [45]
    namespace: 'tx_sfeventmgt_pievent'
    routePath: '/{overwriteDemand/year}/{overwriteDemand/month}/{hash}'
    requirements:
      overwriteDemand/year: '[0-9]{4}'
      overwriteDemand/month: '[0-9]{1..2}'
    defaults:
      overwriteDemand/year: '2020'
      overwriteDemand/month: '10'
      hash: ''

推荐阅读