im正在经历http://book.cakephp.org/2.0/en/tutorials-and-examples/simple-acl-controlled-application/simple-acl-controlled-application.html<---你猜怎么着?)它不起作用,我使用cakehp2.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的
请帮帮伙计们。。。
模型名称必须为单数。
'model' => 'Group'
$user['Users']['group_id'] //in your DB, put "group_id" to, not "groups_id"
确保您创建的模型是"组"。:)
我刚刚遇到了这个问题。追溯代码,问题是我的模型被称为"AdminUser",而不是默认的"User"。修改userModel设置为我解决了这个问题。
public $components = array(
'Acl',
'Auth' => array(
'authorize' => array(
'Actions' => array(
'actionPath' => 'controllers',
'userModel' => 'AdminUser'
)
)
),
'Session'
);
从bindNode方法来看,它看起来像是使用了一个名为"Users"而不是"User"的模型,所以将userModel设置为"Users"可能会奏效。
我希望这会有所帮助,
Pete