2012-09-03 75 views
0

我有以下2條路由。Cakephp路由:使用破折號破壞了它

Router::connect('/photo-gallery/:slug-:id', 
        array('controller' => 'company_categories', 'action' => 'photo_gallery'), 
        array(
         'pass' => array('id'), 
         'id' => "[0-9]+" 
        ) 
    ); 


Router::connect('/:slug-my-string-:id', 
        array('controller' => 'company_categories', 'action' => 'category_companies'), 
        array(
         'id' => "[0-9]+", 
         'pass' => array('id') 
        ) 
    ); 

第一次工作時,第二次不工作。

我在做什麼錯?

謝謝!

+1

您使用哪個網址訪問每個網址? –

+0

一個不工作的網址的解釋是「/ Company-category-my-string-9 /」 – Michael

回答

0

,我終於找到了和它的作品如預期的解決方案如下:

Router::connect('/:slug-:string-:id', 
        array('controller' => 'company_categories', 'action' => 'category_companies'), 
        array(
         'id' => "[0-9]+", 
         'string' => "my-string" 
         'pass' => array('id') 
        ) 
    ); 

這樣我可以hadle所有類型的路由URL模式中使用的靜態字符串並沒有再就解析沒問題破折號(「 - 」),女巫我認爲這是問題。

3

你的第二條路線不起作用,因爲整個字符串「:slug-my-string」被解析爲一個路徑元素,而不僅僅是你所期望的「:slug」。 Reference