到目前为止,我具有以下路由增强器配置:
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]'
很遗憾,这不起作用,我的路线也不再被识别。
答案 0 :(得分:1)
您的var2默认值与requirements
不匹配。因此,在解析URL时,与您的routeEnhancer不匹配。
应该是
defaults:
var1: 'a'
var2: ''
requirements:
var1: '[a-z]'
var2: '[a-z]*'