我有一个包含用户模型,配置文件模型和用户控制器的插件,在此用户模型中与配置文件模型相关联。在我的主模型文件夹(在app下),我有用户模型和用户控制器(这里我没有与配置文件关联)。有时我会收到错误,说用户模型与配置文件模型无关。有时我也会收到错误 - “用户控制器中缺少操作注销”。我在app / controller / userscontroller中给出了注销操作,但myplugin / usercontroller中没有该方法。我正在使用cakephp2.0 ..我该如何解决这个问题? cakephp如何为模型和控制器设置缓存?我不想完全禁用缓存。
答案 0 :(得分:2)
我也遇到过这个问题。基本上,它归结为Cake不支持具有相同类名的控制器。因此,插件和应用程序级别上名为UsersController
的控制器会导致缓存和某些组件(例如Auth
组件)出现问题。
Cake 3.0应用程序将在Cake 3.0中支持相同的类名,这将需要PHP 5.3,后者又支持名称空间,这是正确处理重复类名所需的功能。
由于2.0分支刚刚完成测试版,因此没有任何关于Cake 3.0将会发布的消息,我通过将插件名称添加到我的控制器,视图和模型中来重构我的插件。
因此UserModel
成为PluginUserModel
而UsersController
成为PluginUsersController
。这有点麻烦,因为你必须更新使用模型名称的所有视图和变量。
My original question包含一些指向Cake bug跟踪器的链接,如果您对某些背景感兴趣,可以提出类似的问题,