1

我目前有一个 CakePHP 路由设置:CakePHP 中的变量前缀路由

这是我的routes.php:

路由器::连接(
    "/:forum/:controller/:action/*",
    大批(),
    数组(“通过”=> 数组(“论坛”))
);

路由器::连接(
    “/:论坛”,
    大批(
        “控制器” => “论坛”,
        “动作” => “索引”
    ),
    数组(“通过”=> 数组(“论坛”))
);

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

但是,在查看时,tmp/logs/debug.log我发现这条路由产生了很多错误,我不明白为什么会发生这种情况,因为路由显然工作得很好:

2012-08-22 02:29:09 错误:[MissingControllerException] 找不到控制器类 ExampleController。
#0 /var/www/app/webroot/index.php(92): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse))
#1 {主要}

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

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

4

1 回答 1

1

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

Router::connect(
    "/:forum/:controller",
    array('action' => 'index'),
    array("pass" => array("forum"))
);
于 2012-08-22T17:13:09.660 回答