路线未被识别

时间:2015-02-10 08:25:45

标签: cakephp routing

因为我需要这样的路线:

/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 个答案:

答案 0 :(得分:1)

问题来自以下分隔符:slug和: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\-]+"
              )
        )
    );