在CakePHP 1.3中设置插件的魔术路线?

时间:2010-06-12 19:02:23

标签: cakephp plugins routing routes cakephp-1.3

我正在努力将我的项目从CakePHP 1.2升级到1.3。在这个过程中,似乎插件的“神奇”路由,通过该插件,与插件名称匹配的控制器名称(例如:“ForumsController”)(例如:“forums”)不再自动路由到插件URL的根目录(例如, :“www.example.com/forums”指向插件“论坛”,控制器“论坛”,动作“索引”)。

给出的错误信息如下:

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/index”,我也会得到同样的错误。

我是否需要明确设置我使用的每个插件的路由?这似乎破坏了我对CakePHP的很多魔力。我只发现做以下工作:

Router::connect('/forums/:action/*', array('plugin' => 'forums', 'controller' => 'forums'));
Router::connect('/forums', array('plugin' => 'forums', 'controller' => 'forums', 'action' => 'index'));

为每个插件设置2条路线似乎有点矫枉过正,不是吗?有没有更好的解决方案可以覆盖我的所有插件,或者至少减少我需要为每个插件设置的路由数量?

2 个答案:

答案 0 :(得分:1)

我想,该主题Configuration-and-application-bootstrapping涵盖了:

App::build(array(
    'plugins' => array('/full/path/to/plugins/', '/next/full/path/to/plugins/')
));

另请看一下这张票:http://cakephp.lighthouseapp.com/projects/42648/tickets/750-plugin-route-problem-when-acl-and-auth-components-used#ticket-750-5(Cake 1.3已删除了神奇的插件路线)。

答案 1 :(得分:-1)

你的/ app / plugins / myplugin目录中没有myplugin_app_controller.php。

只需创建一个包含以下内容的文件:

<?php
class MypluginAppController extends AppController {

}
?>

您将获得所有插件的功能。 :)