2010-12-17 74 views
4

有谁知道替代SoftDeletable Behavior兼容蛋糕1.3.xCakePHP 1.3替代SoftDeletable行为?

如果没有任何可用的行为可用,有关我如何在最新的Cake中执行此操作的任何建议?


想通了一个快速的黑客攻击。首先,如果您的表格引入tinyint(1)无符号字段名为删除默认为。

应用程序/ app_model.php,添加以下功能:

function softDelete($id) { 
    if($id && $this->hasField('deleted')) { 
     $this->id = $id; 
     return $this->saveField('deleted', 1); 
    } 

    return false; 
} 

,然后从你的控制器的方法(执行删除)调用,

$this->Model->softDelete($id); 

美中不足的是,无论你在哪里执行find(),都需要指定条件删除!= 1

仍试图找出如何以与SoftDeletable行为相同的方式实现此功能。

回答

5

我已经将mariano的行为调整为1.3。看这里 - https://github.com/evilbloodydemon/cakephp-softdeletable2

+0

真棒伙计:)欣赏你的努力。 – 2010-12-23 09:38:00

+0

你好,我在我的项目中试过你的代码 - 但它似乎是越来越难删除记录,而不是'删除'字段被设置为0.我包括你的代码,因为它应该是,即作为一种行为,并设置'field'指向我表中的'deleted'字段。当我从控制器调用delete()方法时,它仍然保持硬删除。我在这里错过了什么吗? – 2010-12-27 04:22:15

+0

没关系。一个简单的错字。我使用$ actAs而不是$ actsAs。 – 2010-12-28 04:05:34