0

您好我正在尝试在 zf2 路由中传递正则表达式,我的路由器如下所示:

    'exampleroute' => array(
            'type'    => 'segment',
            'options' => array(

                    'route'    => '/exampleroute/[:regexparameter]',
                    'constraints' => array(

                             'regexparameter' => '[a-zA-Z][a-zA-Z0-9_-][$.]*',

                    ),
                    'defaults' => array(

                            '__NAMESPACE__' => 'Mynamespace\Controller',
                            'controller'    => 'exampleroute',
                            'action'        => 'example',
                    ),
            ),
    ),

我想传递以下网址:http://mydomain.com/exampleroute/$2y$14$aPW5u7oGpuuMPRKRz6la1.m2SpJ2STFJ9BZ7giSwfKQxWKIuTODmW

但它给了我“请求的 URL 无法通过路由匹配”的错误。

4

2 回答 2

2

[a-zA-Z][a-zA-Z0-9_-][$.]*方法:

  1. 第一个符号必须是a-zA-Z
  2. 第二个符号必须是a-zA-Z0-9_-
  3. 后跟任意数量的$.符号

我猜你需要这个:

[a-zA-Z0-9_-$.]*

于 2013-07-23T12:20:19.223 回答
0

它现在像这样工作:

'exampleroute' => array(
        'type'    => 'segment',
        'options' => array(

                'route'    => '/exampleroute/[:regexparameter]',
                'constraints' => array(

                         'regexparameter' => '[$.a-zA-z0-9_-]*',

                ),
                'defaults' => array(

                        '__NAMESPACE__' => 'Mynamespace\Controller',
                        'controller'    => 'exampleroute',
                        'action'        => 'example',
                ),
        ),
),
于 2013-07-23T12:30:51.567 回答