我正在将我的项目从CakePHP 1.2升级到1.3。在这个过程中,似乎插件的“神奇”路由通过其匹配插件名称的控制器名称(例如:“ForumsController”)(例如:“forums”)不再自动路由到插件URL的根目录(例如:“www.example.com/forums”指向插件“论坛”,控制器“论坛”,行动“索引”)。为CakePHP 1.3中的插件设置魔术路线?
给出错误消息是如下:
Error: ForumsController could not be found.
Error: Create the class ForumsController below in file: app/controllers/forums_controller.php
<?php
class ForumsController extends AppController {
var $name = 'Forums';
}
?>
事实上,即使我导航到“www.example.com/forums/forums”或“www.example.com/forums/forums/索引“,我得到相同的确切的错误。
我是否需要为每个使用的插件明确设置路由?这似乎破坏了我喜欢CakePHP的许多魔法。我只发现做了以下工作:
Router::connect('/forums/:action/*', array('plugin' => 'forums', 'controller' => 'forums'));
Router::connect('/forums', array('plugin' => 'forums', 'controller' => 'forums', 'action' => 'index'));
设置2路为每一个插件似乎有点小题大做,不是吗?是否有更好的解决方案可以覆盖我所有的插件,或者至少减少我需要为每个插件设置的路线数量?
谢谢bancer,我应该提到我尝试提供一个自定义插件数组到'App :: build()',但是这也没有帮助。我使用的是AuthComponent,所以也许我遇到了与此票据描述相同的问题。我现在无法检查,因为我在工作,但感谢所报告的问题! – 2010-06-15 18:51:17