CakePHP路由MissingControllerException

时间:2012-08-22 08:22:28

标签: cakephp routing

我目前有来自Variable Prefixed Routing in CakePHP

的CakePHP路线设置

这是我的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 :: login,而$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寻找用户控制器而不是示例控制器。

有没有办法解决这个问题?我无法理解为什么会发生这种情况,因为显然正常工作。

1 个答案:

答案 0 :(得分:1)

/ example / users是否有效,就像它路由到UsersController :: index()一样。如果没有,你应该只需要/:forum/:controller的路由,所以尝试在当前路由之前添加它,看看它是否清除了错误:

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