2016-07-05 95 views
0

非字母數字字符按照ZF2手冊我應該能夠使用非字母數字字符以單獨的段中的路徑:ZF2 - 路由,在段

zf2 manual routing

我有一個所述以下路線:

'may_terminate' => true, 
    'child_routes' => [ 
    'image' => [ 
     'type' => 'segment', 
     'options' => [ 
     'route'  => '/image/:id-:width-:height-:slug-:ext', 
     'defaults' => [ 
      'controller' => ImageController::class, 
      'action'  => 'image' 
     ] 
     ], 
    ], 
], 

在我看來,像這樣的應用:

/image/1-100-100-my_image.png 

我現在面臨的問題是這樣的:

當我把我的路線像這樣:

'route'  => '/image/:id-:width-:height-:slug-:ext', 

我收到以下錯誤:

The requested URL could not be matched by routing. No Exception available

如果更新我的路由器:

'route'  => '/image/:id/:width/:height/:slug/:ext', 

它按預期工作。

我使用PHP7與ZF2版〜2.3

雖然我可以用:/作爲分隔符,顯然是一個減號更有意義。這個問題會是什麼?

回答

0

從手動

The {-} after the :foo parameter indicates a set of one or more delimiters, after which matching of the parameter itself ends.

嘗試添加{-}。因爲-是一個通常的符號,所以它不是分隔符。

並嘗試描述路由參數。

'image' => [ 
    'options' => [ 
     'constraints' => [ 
      'id' => '[0-9]+', 
      'width' => '[0-9]+', 
      'height' => '[0-9]+', 
      'slug' => '[\w\d]+', 
      'ext' => '\.png', 
     ] 
    ] 
] 
+0

我相信這會起作用,有一些有趣的問題與骷髏翻譯不喜歡大括號。這最終解決了這個符號:'route'=>'image /:id [ - ]:width [ - ]:height [ - ]:slug [。]:ext', – HappyCoder