2012-08-22 203 views
1

我现在有从CakePHP的路线设置:Variable Prefixed Routing in CakePHPCakePHP的路由MissingControllerException

这里是我的routes.php文件:

 
Router::connect(
    "/:forum/:controller/:action/*", 
    array(), 
    array("pass" => array("forum")) 
); 

Router::connect(
    "/:forum", 
    array(
     "controller" => "forums", 
     "action" => "index" 
    ), 
    array("pass" => array("forum")) 
); 

这工作完全,例如/example/users/login将被路由到UsersController ::登录,并$this->request->params["forum"]将包含example

然而,在观看tmp/logs/debug.log我看到有很多经此途径产生的错误,我不明白为什么会这样,因为路由显然是完美的作品:

 
2012-08-22 02:29:09 Error: [MissingControllerException] Controller class ExampleController could not be found. 
#0 /var/www/app/webroot/index.php(92): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse)) 
#1 {main} 

它本质上是试图寻找一个ExampleController(因为我试图访问/example/users/login),但是routes.php特别告诉CakePHP寻找Users控制器而不是Example Controller。

有没有办法解决这个问题?我不明白为什么会发生,因为一切显然工作正常。

+0

尝试合并这两个路由语句组合成一个和检查。 –

+0

@ArJinJain究竟如何? –

回答

1

是否/ example/users工作,就像路由到UsersController :: index()一样。如果不是这样,如果你需要的只是/路线:论坛/:控制器,所以试下你目前的路线之前加入这个,看看它是否清除了错误:

Router::connect(
    "/:forum/:controller", 
    array('action' => 'index'), 
    array("pass" => array("forum")) 
); 
+0

不,'/ example/users'不起作用 - 我已经添加了该路线,我会看看这个问题是否可以再次复制。 (它只发生在我的生产服务器上,即使debug = 0,localhost也不会报告)现在,这被接受 - 非常感谢! –