1

我正在浏览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() - 找不到由“Array ([Aro0.model] => User [Aro0.foreign_key] =>)”标识的 Aro 节点错误:发生内部错误。

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

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

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

请大家帮忙...

4

2 回答 2

1

模型名称必须是单数。

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

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

于 2012-09-10T15:23:10.540 回答
0

我刚遇到这个问题。追溯代码问题是我的模型被称为“AdminUser”而不是默认的“User”。更改 userModel 设置为我解决了这个问题。

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

查看您的 bindNode 方法,您似乎使用了一个名为“Users”而不是“User”的模型,因此将 userModel 设置为“Users”可能会奏效。

我希望这会有所帮助,
皮特

于 2012-09-13T20:58:57.797 回答