在我的网站上,我需要以这种方式获取页面的URL:/category/page4
,因此传递到控制器的参数是单词“page”之后的数字。我设法使用以下方式获取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
这样的网址具有以下对此代码的修改:
// Simply removed one slash
'/category/page:page'
但是,此代码不会创建我需要的路由。我的错是什么?
答案 0 :(得分: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'
));