cakephp 2.2 Acl不工作(组)

时间:2012-09-10 14:15:20

标签: php cakephp cakephp-2.2

我正在浏览http://book.cakephp.org/2.0/en/tutorials-and-examples/simple-acl-controlled-application/simple-acl-controlled-application.html< ---本教程并猜猜是什么? ;)它不起作用,我使用cakephp 2.2.2 ...我得到下一个错误

  

未定义索引:id [CORE / Cake / Model / AclNode.php,第140行]

     

AclNode :: node() - 找不到标识的Aro节点   “数组([Aro0.model] =>用户[Aro0.foreign_key] =>)   “错误:发生了内部错误。

这个错误是因为我在我的用户模型中没有得到我的group_id

public function bindNode($user) {
            return array('model' => 'Groups', 'foreign_key' => $user['Users']['groups_id']);
        }

所以在这个函数中,$ user var只包含用户名和密码......而且没有group_id的

请帮帮我们......

2 个答案:

答案 0 :(得分:1)

模型名称必须是单数。

'model' => 'Group'
$user['Users']['group_id'] //in your DB, put "group_id" to, not "groups_id"

确保您创建的模型是“组”。 :)

答案 1 :(得分:0)

我刚遇到这个问题。跟踪问题的代码是我的模型被称为'AdminUser',而不是默认的'User'。改变userModel设置为我解决了这个问题。

public $components = array(
    'Acl', 
    'Auth' => array(
        'authorize' => array(
            'Actions' => array(
                'actionPath' => 'controllers',
                'userModel' => 'AdminUser'
            )
        )
    ), 
    'Session'
);

查看你的bindNode方法,看起来你使用一个名为'Users'而不是'User'的模型,所以将userModel设置为'Users'可能会有所帮助。

我希望有所帮助,
皮特