具有多个小部件链接的RouteEnhancer

时间:2019-12-18 09:03:16

标签: typo3 typo3-9.x

到目前为止,我具有以下路由增强器配置:

routeEnhancers:
  Plugin:
    type: Extbase
    extension: Plugin
    plugin: Plugin
    routes:
      - { routePath: '/test/{var1}', _controller: 'ContactPerson::list', _arguments: { 'var1': '@widget_0/var1' } }
    defaultController: 'Plugin::list'
    defaults:
      var1: 'a'
    requirements:
      var1: '[a-z]'

我面临的问题是我的小部件有两个参数(获取变量),第二个参数是可选的。所以我将路由增强器更改为此:

routeEnhancers:
  Plugin:
    type: Extbase
    extension: Plugin
    plugin: Plugin
    routes:
      - { routePath: '/test/{var1}/{var2}', _controller: 'ContactPerson::list', _arguments: { 'var1': '@widget_0/var1' , 'var2': '@widget_0/var2' } }
    defaultController: 'Plugin::list'
    defaults:
      var1: 'a'
      var2: ''
    requirements:
      var1: '[a-z]'
      var2: '[a-z]'

很遗憾,这不起作用,我的路线也不再被识别。

1 个答案:

答案 0 :(得分:1)

您的var2默认值与requirements不匹配。因此,在解析URL时,与您的routeEnhancer不匹配。

应该是

defaults:
  var1: 'a'
  var2: ''
requirements:
  var1: '[a-z]'
  var2: '[a-z]*'