2015-02-10 63 views
1

因爲我需要有這樣的路線:路線不承認

/my-example-of-product-p120.htm 
/my-example-of-category-c10.htm 

我寫我的路線:

Router::connect(
     '/:slug-p:id', 
     array('controller' => 'product', 'action' => 'view'), 
     array('pass' => array('id'), 
       array(
        'id' => '[0-9]+', 
        'slug'=>"[a-z0-9\-]+" 
      ) 
     ) 
    ); 

Router::connect(
     '/:slug-c:id', 
     array('controller' => 'categories', 'action' => 'view'), 
     array('pass' => array('id'), 
       array(
        'id' => '[0-9]+', 
        'slug'=>"[a-z0-9\-]+" 
      ) 
     ) 
    ); 

但CakePHP的不承認我的路線。 任何人都可以幫我解決這個問題嗎?

回答

1

的問題來自之間的分隔符:鼻涕蟲:ID(「-p」或「-c」) 所以我乾脆把它放在說法

Router::connect(
     '/:slug:sep:id', 
     array('controller' => 'product', 'action' => 'view'), 
     array('pass' => array('id'), 
       array(
        'id' => '[0-9]+', 
        'sep' => '-p', 
        'slug'=>"[a-z0-9\-]+" 
      ) 
     ) 
    ); 
Router::connect(
     '/:slug:sep:id', 
     array('controller' => 'categories', 'action' => 'view'), 
     array('pass' => array('id'), 
       array(
        'id' => '[0-9]+', 
        'sep' => '-c', 
        'slug'=>"[a-z0-9\-]+" 
      ) 
     ) 
    );