我创建了一个简单的 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')
)
)
)
);