簡體   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