我创建了一个简单的 CMS 来管理几个基于 CakePHP 的小型网站。在成功将插件从 1.3 迁移到 2.0 后,我在将 Cake 更新到最新版本 2.1.2 后遇到了 AuthComponent 问题。
插件的类名都以插件名称为前缀以避免重复的类名,因为应用程序与插件共享其大部分表。所以在某些情况下,我有一个UsersController
用于主应用程序和一个PluginNameUsersController
用于我的 CMS 插件(或 aPostsController
和 a PluginNamePostsController
)。插件模型依赖于$useTable
找到正确的数据库表(所以PluginNamePostsController
仍然使用posts
)。
自从升级到 Cake 的 2.1.* 分支以来AuthComponent
,它已经停止工作,因为它期望一个不存在的pluginname_users
表而不是引用users
.
是否可以为 定义自定义表,AuthComponent
或者是否有任何其他方法可以使其正常工作?另外,这种行为是预期的吗?
组件配置PluginNameAppController
如下:
public $components = array(
'Session', 'RequestHandler',
'Auth'=> array(
'loginAction' => array(
'controller' => 'pluginname_users',
'action' => 'login',
'plugin' => 'pluginname'
),
'loginRedirect' => array(
'controller' => 'pluginname_posts',
'action' => 'index',
'plugin' => 'pluginname'
),
'authenticate' => array(
'Form' => array(
'userModel' => 'PluginNameUser',
'fields' => array('username', 'password')
)
)
)
);