繁体   English   中英

zf2路由中的正则表达式

[英]regex in zf2 routing

嗨我想在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.m2SpJ2STFJ9BZ7giSwfKQxWKIuTODmWhttp://mydomain.com/exampleroute/$2y$14$aPW5u7oGpuuMPRKRz6la1.m2SpJ2STFJ9BZ7giSwfKQxWKIuTODmW

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

[a-zA-Z][a-zA-Z0-9_-][$.]*表示:

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

我想你需要这个:

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

它的工作方式如下:

'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',
                ),
        ),
),

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM