2010-12-17 36 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