Php 缺少数据库表时出现错误。

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

我试图在我的项目中使用Cake教程中的Cake PHP Auth部分。但它不起作用

我创建了三个表“管理员用户”,其中包含字段(id、用户名、密码、组id、创建、修改)、“管理员组”(id、名称、创建、修改)和“用户”(id、用户名、密码、创建、修改)

我试过将普通用户放在用户表中,管理员用户放在“admin_users”表中,并按“admin_groups”将管理员用户分组,以获得管理员端的权限访问

当我尝试路径“[rootpath]/users/login”时,出现一个错误:找不到模型Admin的数据库表“admins”。但是我没有为管理员创建一个模型

在我再次创建admins表之后,出现错误“找不到模型UsersAdmin的数据库表'users\u admin'。这里也没有为UsersAdmin创建模型

在用户控制器中

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模型以反映此更新,并清理缓存