typo3 - 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 的外观如何?
解决方案
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: ''
推荐阅读
- google-cloud-platform - 在没有 HTTP 端点的情况下运行服务
- git - 仅在 git 中显示冲突解决历史记录
- php - 如何为 SFTP 配置“League\Flysystem”以使用代理服务器而不是直接连接?
- javascript - 有什么方法不支持关于 Outlook Office 加载项的 IE11?
- jquery - 将任何变量放入表中的任何位置
- scala - 为什么在使用返回 Option[Long] 类型对象的 UDF 时会出现类型不匹配错误?
- c# - DocuSign eSignature REST API C# 客户端:同一个模板角色可以在单个文档上执行多个签名步骤吗?
- typescript - 在 Jasmine 中使用 2 个不同的模拟进行测试
- googletest - 使用 gmock 编写单元测试
- python - 为什么存在 arg 时“tree = ElementTree.parse(f)”会给出错误“TypeError: parse() missing 1 required positional argument: 'source'”