失败的ARO/ACO节点查找

问题描述:

在第8章“蛋糕控制面板”的电子书“实用CakePHP项目”中运行该教程时,出现一个奇怪的错误。一切都建立了,数据库设置完全空白,我正在通过本章末尾的测试来验证一切正在工作......我不确定发生了什么,但我一直在遇到以下错误:失败的ARO/ACO节点查找

Warning (512): DbAcl::check() - Failed ARO/ACO node lookup in permissions check. Node references: 
Aro: Array 
(
    [User] => Array 
     (
      [id] => 2 
      [username] => admin 
      [group_id] => 1 
      [created] => 2010-07-05 12:07:45 
      [modified] => 2010-07-05 12:08:00     
     ) 

) 

它看起来像它在告诉我,有我无阿罗节点是由与“2”的ID模型“用户”标识。但看我的阿罗斯表,我可以清楚地看到,最后一个记录是:

id:4, parent_id:2, model:User, foreign_key:2, alias:User:2, lft:2, rght:3 

而下面的相对战绩是我的用户表:

id:2, username:admin, password:hashed, group_id:1, created:date, modified:date 

我要去哪里错了?任何方向有人可以指向我将不胜感激。

谢谢!

在我看来,您要么在acos表中没有相应的记录,要么在acos_aros中没有相应的记录。如果是这种情况,您需要在您的app_controller.php中添加$this->Auth->allow('*');beforeFilter(),之后添加ACO(s)并允许其管理用户。

我建议你遵循官方指南Simple Acl controlled Application,因为书中的信息变得过时了。有些东西可能不适用于CakePHP 1.3。

+0

感谢您的答复。我实际上进入了我的app_controller,并将“显示”添加到Auth组件的allowedActions数组中。现在,我没有收到那个错误,而是被重定向回到我的主页......我不是100%确定为什么,但我认为我正朝着正确的方向前进。 – Imperatorr 2010-07-06 21:13:56

+0

如果您被重定向,可能是因为您没有权限访问您请求的页面。 – bancer 2010-07-06 22:48:10

如果你已经设置的ACLExtras自动化工具同步助理文书主任,在CakePHP的控制台执行以下命令:

./Console/cake AclExtras.AclExtras aco_sync