【问题标题】:Failed ARO/ACO node lookupARO/ACO 节点查找失败
【发布时间】:2012-05-31 06:41:34
【问题描述】:

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

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 中没有由 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

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

谢谢!

【问题讨论】:

    标签: php cakephp


    【解决方案1】:

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

    ./Console/cake AclExtras.AclExtras aco_sync
    

    【讨论】:

      【解决方案2】:

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

      我建议你遵循官方教程Simple Acl controlled Application,因为书中的信息已经过时了。 CakePHP 1.3 可能无法正常工作。

      【讨论】:

      • 感谢您的回复。我实际上进入了我的 app_controller 并在 Auth 组件中的 allowedActions 数组中添加了“显示”。现在,我没有收到那个错误,而是被重定向回我的主页......我不是 100% 确定原因,但我认为我正朝着正确的方向前进。
      • 如果您被重定向,那可能是因为您无权访问您请求的页面。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-21
      相关资源
      最近更新 更多