CakePHP:删除用户删除通过belongsTo关联的用户

时间:2012-03-19 19:18:23

标签: cakephp cakephp-1.2

我希望能够删除用户,但用户有管理员:

var $belongsTo = array(
        'Manager' => array(
            'className' => 'User',
            'foreignKey' => 'manager_id',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        ),
    );

每当用户被删除时,所有的“孩子”也会被删除。

例如,假设我删除了用户A.用户A是用户B,C和D的管理员。当A被删除时,B,C和D也被删除,因为他们将A作为{{1} }。

所以我的问题是 - 这应该发生吗?有没有办法阻止这种情况发生?

谢谢!

2 个答案:

答案 0 :(得分:3)

阅读本书,这是预期的行为,你可以通过添加

来阻止它
'dependent' => false,

到关联配置数组。

请参阅http://book.cakephp.org/1.2/en/view/78/Associations-Linking-Models-Together并在此页面上搜索“相关”。

我建议您使用2.0,如果它是一个新项目,1.2现在已经弃用了很长时间。

答案 1 :(得分:0)

这是一个ACL问题 - 完全出乎意料。由于我们的用户使用管理器以树形结构运行,因此用户只有lftrght字段,该字段仅在afterSave中更新。简单的解决方案是通过将用户lftrght设置为0来分离用户,但经过深入思考,我将manager_id设置为NULL并且保存它以便树重新组织(通过afterSave)。

哇。那就是问题所在。