2011-05-23 24 views
1

A User向網站提交EventUpload(如圖片)。將條件添加到CakePHP模型中的依賴項? (或一起依賴於多件事)

如果用戶或事件被刪除,圖像應該保留 - 但是如果兩者同時用戶和事件被刪除,上傳也應該被刪除。

這可以通過在模型中設置CakePHP的dependent來完成嗎?它可以依賴於兩者的組合嗎?或者 - 我可以向'dependent'=>true添加條件嗎?

例如:

var User = array(
    'Upload' => array(
     'dependent' => true, 
     //can I set a condition here? Or pass array w/ conditions to line above? 
    ), 
); 

我是相當新的蛋糕,所以如果我錯過了船 - 也就是說,如果有另一種更好的方式來做到這一點,隨時讓我知道。

我唯一的想法到目前爲止是隻擁有它不依賴,並運行刪除查詢自己瓦特/所有必要條件 - 但希望CakePHP的將有這樣的事情內置

回答

2

它很可能是最好的。做了一下檢查的afterDelete(),例如:

User::afterDelete(){ 
// if !$this->Event->find(...conditions...); delete the image 
} 

Event::afterDelete(){ 
// if !$this->User->find(...conditions...); delete the image 
} 

,你也可以用類似的方式進行檢查使用beforeDelete(),如果條件得到滿足通過關係設置「依賴」動態

有沒有辦法設置條件的「從屬」選項中的條件

+0

這將是模型?你能添加一個鏈接到有關這方面的信息嗎? (非常感謝) – Dave 2011-05-23 20:25:46

+0

beforeDelete和afterDelete是模型回調,所以是在model.http://book.cakephp.org/view/1048/Callback-Methods – dogmatic69 2011-05-24 09:20:14

0

在模型中調用delete方法時,將第二個選項設置爲true。

使用BeforeDelete/AfterDelete方法,結合你的模型http://book.cakephp.org/view/1036/delete

delete(int $id = null, boolean $cascade = true); 

刪除由$ id標識的記錄。默認情況下,也會刪除依賴於指定要刪除的記錄的記錄。

例如,刪除被綁定到許多配方記錄(用戶「的hasMany」或「hasAndBelongsToMany」食譜)的用戶記錄時:

if $cascade is set to true, the related Recipe records are also deleted if the models dependent-value is set to true. 
if $cascade is set to false, the Recipe records will remain after the User has been deleted. 
+0

我不認爲你完全理解/閱讀這個問題。不過,我很欣賞你的嘗試。 – Dave 2011-05-24 14:48:59

相關問題