0

在我的网站上,我需要以这种方式获取页面的 URL:,/category/page4因此传递给控制器​​的参数是“页面”一词之后的数字。我设法通过以下方式获取 URL:(/category/page/4带有额外的斜杠)使用此代码:

$router->addRoute('categoryPages', new Zend_Controller_Router_Route(
    '/category/page/:page',
     array(
        'controller' => 'caegory',
        'action' => 'index'
    ),
    array(
        'page' => '\d+'
    )
));

我希望有类似/category/page4以下代码修改的 URL:

// Simply removed one slash
'/category/page:page'

但是,此代码不会创建我需要的路由。我的错误是什么?

4

1 回答 1

1

你不能这样做Zend_Controller_Router_Route,命名变量必须单独位于 url 分隔符(斜杠)或路由的开始/结束附近。

相反,您可以将其作为正则表达式路由:

$router->addRoute('categoryPages', new Zend_Controller_Router_Route_Regex(
    'category/page(\d+)',
     array(
        'controller' => 'caegory',
        'action' => 'index'
    ),
    array(
        1 => 'page'
    ),
    'category/page%s'
));
于 2013-03-14T13:49:01.140 回答