Zend Framework中的路线

时间:2014-08-07 08:03:24

标签: php zend-framework routing

我刚开始使用基于Zend的CMS在网站上工作。让我们说在routes.ini文件中指定了路由,其中​​一个看起来像这样:

routes.news.route                = "/news/:nice/*"  
routes.news.defaults.module  = "default"   
routes.news.defaults.controller  = "news"  
routes.news.defaults.action      = "item"  
routes.news.reverse              = "/news/%s/*"

它运作得很好。但是,如果:nice将是page-number

,则如何编辑此代码以禁用此路线

所以,我想要的是:

routes.news.route                = "/news/(if !(:nice == page-number){ :nice}/*"

这是否可以理解?

1 个答案:

答案 0 :(得分:0)

我不认为这样可以在路线规则中应用if和buts。而不是这种方式,你可以使用下面提到的解决方案。

  1. 在您的操作中,检查参数nice
  2. 的值
  3. 如果是page-number,则以编程方式抛出404例外。
  4. 否则继续执行其余代码。

    public function testAction() {
        if($this->getRequest()->getParam('nice') == 'page-number') {
            throw new Zend_Controller_Action_Exception('Your message here', 404);
        }
        //Rest of the Code goes here...
    }
    
  5. 如果您致电http://yourserverpath.com/index/test/nice/page-number,则会显示404页面,如有任何其他值,则会显示原始页面。