2016-09-13 8 views
0

にURLのために、「要求されたURLをルーティングすることで一致することができませんでした」:http://domain.com/blog/entry/august/18/2016/9/6/14ZF2ルーティングエラー

私は入力をサニタイズを支援するために、ルーティングと非常に特異的であるのです。それぞれの制約に対して許容可能な入力を「定義」したいと思う。私のエラーは、制約との不一致のいくつかのタイプだと思う。それは私が目の新鮮なセットを必要とし、明らかにされていません。これらの制約は、正規表現です

'blog-entry' => [ 
    'type' => 'segment', 
    'options' => [ 
     'route' => '/blog/entry/[:month_reference]/[:day_reference]/[:year_reference]/[:hour_reference]/[:minute_reference]/[:second_reference]', 
     'constraints' => [ 
      'month_reference' => '(january|february|march|april|may|june|july|august|september|october|november|december)', 
      'day_reference' => '[1-31]', 
      'year_reference' => '[0-9]*', 
      'hour_reference' => '[0-23]', 
      'minute_reference' => '[0-59]', 
      'second_reference' => '[0-9]*', 
     ], 
     'defaults' => [ 
      'controller' => 'Actsministries\Blog\Controller\Blog', 
      'action'  => 'blogentry' 
     ] 
    ] 
], 

答えて

1

私のルーティングは次のようになります。数字の場合は[0-9]を使用します。それが1と2桁の間でなければならないことを伝えるには、{1,2}を使用します。ちょうど4(年)は{4}を使います。

'blog-entry' => [ 
    'type' => 'segment', 
    'options' => [ 
     'route' => '/blog/entry/[:month_reference]/[:day_reference]/[:year_reference]/[:hour_reference]/[:minute_reference]/[:second_reference]', 
     'constraints' => [ 
      'month_reference' => '(january|february|march|april|may|june|july|august|september|october|november|december)', 
      'day_reference' => '[0-9]{1,2}', // Between 1 and 2 digits 
      'year_reference' => '[0-9]{4}', // Exactly 4 digits 
      'hour_reference' => '[0-9]{1,2}', 
      'minute_reference' => '[0-9]{1,2}', 
      'second_reference' => '[0-9]{1,2}', 
     ], 
     'defaults' => [ 
      'controller' => 'Actsministries\Blog\Controller\Blog', 
      'action'  => 'blogentry' 
     ] 
    ] 
],