2010-07-05 71 views
0

在第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 

我要去哪裏錯了?任何方向有人可以指向我將不勝感激。

謝謝!

回答

1

在我看來,您要麼在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

2

如果你已經設置的ACLExtras自動化工具同步助理文書主任,在CakePHP的控制檯執行以下命令:

./Console/cake AclExtras.AclExtras aco_sync