我希望能够删除用户,但用户有管理员:
var $belongsTo = array(
'Manager' => array(
'className' => 'User',
'foreignKey' => 'manager_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
);
每当用户被删除时,所有的“孩子”也会被删除。
例如,假设我删除了用户A.用户A是用户B,C和D的管理员。当A被删除时,B,C和D也被删除,因为他们将A作为{{1} }。
所以我的问题是 - 这应该发生吗?有没有办法阻止这种情况发生?
谢谢!
答案 0 :(得分:3)
阅读本书,这是预期的行为,你可以通过添加
来阻止它'dependent' => false,
到关联配置数组。
请参阅http://book.cakephp.org/1.2/en/view/78/Associations-Linking-Models-Together并在此页面上搜索“相关”。
我建议您使用2.0,如果它是一个新项目,1.2现在已经弃用了很长时间。
答案 1 :(得分:0)
这是一个ACL问题 - 完全出乎意料。由于我们的用户使用管理器以树形结构运行,因此用户只有lft
和rght
字段,该字段仅在afterSave
中更新。简单的解决方案是通过将用户lft
和rght
设置为0
来分离用户,但经过深入思考,我将manager_id
设置为NULL
并且保存它以便树重新组织(通过afterSave
)。
哇。那就是问题所在。