2010-07-20 34 views
1

我有一個偵聽器,它包含一個preSave()方法。如果條件失敗,有沒有辦法讓我停止調用save方法的教條 。不幸的是我不允許拋出異常。有沒有其他方法?Doctrine Record Listener

回答

5

我的第一個想法是在preSave()方法中設置一個標誌,並在save()方法中檢查該標誌。但我認爲skipOperation()是你正在尋找的:

public function preSave(Doctrine_Event $event) 
{ 
    if (!$condition) { 
     $event->skipOperation(); 
    } 
} 
+0

哇,這太棒了!我從來不知道skipOperation!真棒! – balupton 2010-07-21 13:04:21

+0

我會嘗試skipOperation .......但我不確定標記方法,因爲preSave()在我們的模型的save()方法之後但在Doctrine_Record'd save()方法之前調用 – rahul 2010-07-22 21:08:27