Zend2 像枚举一样路由约束

Zend2 routes constraints like enum

我想对传递给我项目路由的变量设置类似枚举的约束

例如变量 routeVar 只能是 optinoptout

所以假设我想要一个像 http://subdomain.exampledomain.com/route/ 这样的 url ,它只能得到以下两种形式之一

  1. http://subdomain.exampledomain.com/route/optin
  2. http://subdomain.exampledomain.com/route/退出

我放在一起的路由配置如下所示,我已经尝试了 [optin|optout][optin|optout]+ 正则表达式,但没有成功

'route-name' => [
    'type' => 'Segment',
    'options' => [
        'route' => '/route/:routeVar',
        'constraints' => [
            'routeVar' => '[optin|optout]',
        ],
        'defaults' => [
            'controller' => someController::class,
            'action' => 'someAction',
        ],
    ],
    'may_terminate' => true,
],

请注意:这是一个子路由,它可以很好地处理预期的控制器和操作。我只是未能应用我使用约束描述的限制:(

您要查找的正则表达式是

(optin|optout)

[]语法用于字符组。

实际上甚至可能

^(optin|optout)$

确保值中没有多余的字符。