2010-06-12 66 views
0

我正在将我的项目从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路为每一个插件似乎有点小题大做,不是吗?是否有更好的解决方案可以覆盖我所有的插件,或者至少减少我需要为每个插件设置的路线数量?

回答

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(蛋糕1.3已经删除魔法插件路由)。

+0

谢谢bancer,我应该提到我尝试提供一个自定义插件数组到'App :: build()',但是这也没有帮助。我使用的是AuthComponent,所以也许我遇到了与此票据描述相同的问题。我现在无法检查,因为我在工作,但感谢所报告的问题! – 2010-06-15 18:51:17

-1

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

只需创建一个包含下列文件:

<?php 
class MypluginAppController extends AppController { 

} 
?> 

,你将有你的插件的所有功能。 :)

+0

不,我肯定有该文件。虽然谢谢! – 2010-06-13 20:04:14