我是cakephp的新手,我想通过URL调用插件。这是
的网址http://testproject.local/PluginName/ControllerName/ActionName
当我运行此URL时,我发现“Missing Controller”错误。
Missing Controller
Error: <ControllerName>Controller could not be found.
Error: Create the class <ControllerName>Controller below in file: `app/Controller/<ControllerName>Controller.php`
它向我展示
`Exception Attributes: array ( 'class' => 'PracticeFusionController', 'plugin' => NULL, )`
这是我的routes.php
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
/**
* ...and connect the rest of 'Pages' controller's urls.
*/
Router::connect('/Pages/*', array('controller' => 'pages', 'action' => 'display'));
Router::connect('/gods/:action/*', array('plugin' => 'nova', 'controller' => 'gods'));
Router::connect('/gods', array('plugin' => 'nova', 'controller' => 'gods'));
Router::parseExtensions('json', 'xml');
Router::mapResources('events');
Router::connect('/<pluginName>', array('plugin' => '<pluginName>', 'controller' => '<ControllerName>'));
答案 0 :(得分:1)
如果您实际在项目的引导程序中加载了插件,则只能加载/打开插件路由。您不需要在核心应用程序的routes.php中包含插件路由。如果要添加特定于插件的路由,可以使用routes
选项加载特定于插件的路由文件。请注意,默认情况下,所有/plugin/controller/action
路由都已正确路由,您不需要单独的路由文件。
所以,在你的核心应用程序app / Config / bootstrap.php中,添加:
CakePlugin::load('YourPlugin', array('routes' = true));
然后将加载插件的Config / routes.php中的路由并可以使用。 有关详细信息,请参阅the documentation。
答案 1 :(得分:0)
如果以上解决方案不起作用,请加载像CakePlugin :: load('YourPlugin',array('routes'=&gt; true))插件;请注意传递的数组是:array('routes'=&gt; true)