ARO / ACO节点查找失败

时间:2010-07-05 18:29:29

标签: php cakephp

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

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                
        )

)

看起来它告诉我,我的Aro中没有节点由模型'User'标识,ID为'2'。但是看着我的Aros表,我可以清楚地看到最后一条记录如下:

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

我哪里错了?任何有人指点我的方向都会非常感激。

谢谢!

2 个答案:

答案 0 :(得分:2)

如果您已设置ACLExtras Automated工具来同步ACO,请在CakePHP控制台中执行以下命令:

./Console/cake AclExtras.AclExtras aco_sync

答案 1 :(得分:1)

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

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