检测zend路由器变量中的变量类型

时间:2011-11-05 21:35:49

标签: php model-view-controller zend-framework url

所以我使用zend_router将我的控制器中的索引页面路由到索引操作以外的操作:

$route = new Zend_Controller_Router_Route(
                         '/controller/:page',
                          array(
                              'action' => 'not-index',
                              'controller' => 'controller',
                              'page' => 1,
                              ),
         );

我之所以添加:页面进入路径的原因是因为该索引中存在分页,即使用户只在浏览器中输入'/ controller',我也希望有paginator工作,所以它有了在那里(见:http://www.joewebster.co.uk/articles/zend-framework/7-zend-pagination-and-zend-router)...

问题是......现在控制器内的其他操作也将重定向到该页面而不是正确的操作

因此假设我向浏览器输入'/ controller / other-action',由于该路由定义,它使用page = other-action而不是'controller / other-action'进入'controller / not-index'。 ...有没有办法将路由器定义中的:页面限制为仅整数,即。如果我输入'/ controller / 2'然后转到'controller / not-index',页面= 2,如果我输入'/ controller / other-action',它实际上会转到'controller / other-action'< / p>

1 个答案:

答案 0 :(得分:1)

我想你可能想看一下Regex_router: http://framework.zend.com/manual/en/zend.controller.router.html#zend.controller.router.routes.regex

这应该可以帮助您实现目标。我担心标准的路由器不够灵活。