Zend_Controller_Router_Route_Regex不工作

问题描述:

我想在应用程序中使用Zend_Controller_Router_Route_Regex,但它似乎并没有工作。Zend_Controller_Router_Route_Regex不工作

我已经建立了一个非常基本的实例:

$route = new Zend_Controller_Router_Route_Regex(
         '/developer/test/(d+)', 
    array('controller' => 'developer', 'action' => 'module','module'=>'topic')  
    ); 
    $router->addRoute('apiModule2', $route); 

和相应的动作:

public function moduleAction() 
{ 
    $this->view->module = 'topic'; 
} 

然而,每一次我访问本地主机/开发/测试/ 1,我得到一个没有路线匹配异常。

我相信这是所有设置正确,因为如果我使用相同的确切代码只改变Zend_Controller_Router_Route_Regex到Zend_Controller_Router_route和匹配的URL匹配到'开发/测试/ 1'它都完美。

任何想法可能会发生什么?

谢谢!

+0

我不知道是否是这个原因,但是在你的路由中没有正则表达式...试着/开发人员/(测试)/(测试) –

+0

感谢Frederik,但不幸的是在路由中增加了更多的正则表达式,虽然帮助 – djs22

正确的路线匹配

http://localhost/developer/test/1

$route = new Zend_Controller_Router_Route_Regex(
        'developer/test/(\d+)', 
array('controller' => 'developer', 'action' => 'module','module'=>'topic')  
); 

你不应该有前导斜杠(开发商前)和d +应该是\ d +。

+0

谢谢emaillenin,我尝试使用更明确的正则表达式(详见修改后的问题),仍然没有运气。不知道为什么它不会匹配任何东西 – djs22

+0

检查我更新的答案 – emaillenin