目前我已经在 CakePHP 应用程序中设置了 Auth & ACL 组件。我有一个Group
&User
模型都设置为请求者。这一切一开始都很好,aros
每当添加新组时,表格都会正确更新。例如,这将是我的aros
表格内容:
+----+-----------+-------+-------------+-------+------+------+
| id | parent_id | model | foreign_key | alias | lft | rght |
+----+-----------+-------+-------------+-------+------+------+
| 1 | NULL | Group | 1 | NULL | 1 | 2 |
| 2 | NULL | Group | 2 | NULL | 3 | 4 |
| 3 | NULL | Group | 3 | NULL | 5 | 6 |
+----+-----------+-------+-------------+-------+------+------+
User
此后,我将and模型重构Group
为他们自己的名为“Survey”的插件(以及其他模型、控制器、组件等)。
我立即收到此错误:
AclNode::node() - Couldn't find Aro node identified by "Array ( [Aro0.model] => Group [Aro0.foreign_key] => 1 ) "
我更新了User::bindNode()
方法以在模型上包含“调查”前缀:
class User extends SurveyAppModel
{
// ...
public function bindNode($user)
{
return array('model' => 'Survey.Group', 'foreign_key' => $user['Survey.User']['group_id']);
}
//...
}
我还将aros
表中的“模型”字段更改为“Survey.Group”而不是“组”。
然后这消除了错误,我的授权和身份验证再次起作用。当我将新记录保存到 Group 模型时,我的问题现在发生了,aros
表中的模型字段设置为“Group”而不是“Survey.Group”,所以我得到与以前相同的错误。
所以我想知道如何获得它,以便当我将新记录保存到 Group 模型时,它会自动将插件前缀名称添加到“模型”字段?