我目前正在使用 CakePHP 2.5.2 我想集成一个插件来管理用户。 我在第一次测试它作为单个CakePHP应用程序(应用程序/控制器中的控制器,应用程序/模型中的模型,应用程序/视图/用户中的视图):没问题。
我现在尝试将其转换为插件: 我在app / plugin中创建了一个文件夹UserManager。
当我尝试转到我的某个控制器的网址时,收到消息缺少控制器。
所有插件都在Bootstrap.php(CakePlugin::loadAll();
)中加载。
我试图找到与解决方案类似的问题,但没有人与我的问题相关(我尝试了一些建议的解决方案,但根本原因不同。
当我在Include部分查看DebugKit时,我可以看到我的DebugKit插件已加载但不是我的其他插件......
有人可以建议我一个解决方案吗? 提前谢谢。
(请参阅下面的代码说明)
我添加了控制器,模型和视图,如下所示(Bake生成的骨架并检查:确定):
UserManagerAppModel.php
<?php
App::uses('AppModel', 'Model');
class UserManagerAppModel extends AppModel {
}
?>
user.php的
<?php
App::uses('AuthComponent', 'Controller/Component');
class User extends UserManagerAppModel {
...
}
?>
UserManagerAppModel.php:
<?php
App::uses('AppController', 'Controller');
class UserManagerAppController extends AppController {
}
?>
UserController.php:
<?php
class UsersController extends UserManagerAppController {
public $uses = array('UserManager.User');
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('*');
}
public function login() {
}
...
?>
没什么特别的。
答案 0 :(得分:0)
我认为这是您的路径名称的问题:他们必须包含插件名称。另外,文件夹名称必须按照惯例以大写字母开头。例如,UserManagerAppModel
必须位于以下文件中:app/Plugin/UserManager/Model/UserManagerAppModel.php
。
另见http://book.cakephp.org/2.0/en/plugins.html#creating-your-own-plugins
答案 1 :(得分:0)
由于我认为在AppController loginAction中包含了AuthComponent设置,请记下该调用并检查插件的名称。在我的情况下,插件名称是Barracuda,在调用barracuda之前不会发生错误,第一个字母是小写字母。
'loginAction' => array(
'controller' => 'users',
'action' => 'login',
'plugin' => 'Barracuda'
),
的
'loginAction' => array(
'controller' => 'users',
'action' => 'login',
'plugin' => 'barracuda'
),