Php 缺少数据库表时出现错误。
我试图在我的项目中使用Cake教程中的Cake PHP Auth部分。但它不起作用 我创建了三个表“管理员用户”,其中包含字段(id、用户名、密码、组id、创建、修改)、“管理员组”(id、名称、创建、修改)和“用户”(id、用户名、密码、创建、修改) 我试过将普通用户放在用户表中,管理员用户放在“admin_users”表中,并按“admin_groups”将管理员用户分组,以获得管理员端的权限访问 当我尝试路径“[rootpath]/users/login”时,出现一个错误:找不到模型Admin的数据库表“admins”。但是我没有为管理员创建一个模型 在我再次创建admins表之后,出现错误“找不到模型UsersAdmin的数据库表'users\u admin'。这里也没有为UsersAdmin创建模型 在用户控制器中Php 缺少数据库表时出现错误。,php,cakephp,cakephp-1.3,Php,Cakephp,Cakephp 1.3,我试图在我的项目中使用Cake教程中的Cake PHP Auth部分。但它不起作用 我创建了三个表“管理员用户”,其中包含字段(id、用户名、密码、组id、创建、修改)、“管理员组”(id、名称、创建、修改)和“用户”(id、用户名、密码、创建、修改) 我试过将普通用户放在用户表中,管理员用户放在“admin_users”表中,并按“admin_groups”将管理员用户分组,以获得管理员端的权限访问 当我尝试路径“[rootpath]/users/login”时,出现一个错误:找不到模型Adm
class UsersController extends AppController {
var $name = 'Users';
var $uses = array();
var $components = array('Auth','Session');
function login() {
$this->set('title_for_layout', 'Login');
/*if ($this->Auth->user()) {
$this->redirect($this->Auth->redirect());
}*/
}
function logout() {
$this->redirect($this->Auth->logout());
}
}
像这样试试var $name = 'Users';
var $layout = 'main';
function beforeFilter(){
$this->Auth->authenticate = ClassRegistry::init('User');
parent::beforeFilter();
}
function index(){
$this->set('title_for_layout', 'test site');
}
function login(){
Security::setHash('md5');
$this->set('title_for_layout', 'test site');
}
function welcome(){
}
function logout(){
$this->set('title_for_layout', 'test site');
$this->redirect($this->Auth->logout());
}
}
?>
问题可能与您的数据库结构有关 首先是一点主题,但是如果您从头开始项目,您可能应该只使用一个表(
用户
)来存储所有用户,并将他们链接到另一个表(组
)以赋予他们不同的权限。它可以是与users
表中的字段group\u id
的直接链接(这将允许您以后使用核心ACL组件),也可以是与users
和groups
之间的表users\u group
的多对多关系
这就是说,有一件事是Cake无法理解的:您调用了管理员用户
和管理员组
“组id
”之间的外键。使用此名称,Cake将尝试查找名为groups
的表,而不是admin\u groups
。如果要保留管理员组
,外键名称应为管理员组id
首先纠正这一点,也许这将解决您遇到的一些问题。如果未处于调试模式,您可能还必须更正AdminUser模型以反映此更新,并清理缓存