2013-01-22 72 views
2

我有擴展模型類Mage_Core_Model_Abstract。我有一個資源,它擴展了Mage_Core_Model_Mysql4_Abstract。現在,我從控制器刪除下面的代碼:Magento模型刪除功能

public function deleteAction() 
{ 
    $params = $this->getRequest()->getParams(); 
    $blogpost = $this->_createModel(); 
    $blogpost->setId($params['id']); 
    $blogpost->delete(); 
    echo 'Post with id ' . $params['id'] . ' is deleted'; 
} 

的問題是沒有顯示錯誤,當我提供不存在的 IDS。該怎麼辦 ?我是否必須加載該ID並檢查它是否存在?或者我應該使用try/catch。我用嘗試和捕捉,但沒有給出任何結果。

回答

3

當然它不會拋出異常,DELETE說法得到沒有錯誤,最終執行的,它只有0

不幸的是,行數被丟在這裏受影響的行數(Mage_Core_Model_Resource_Db_Abstract):

/** 
* Delete the object 
* 
* @param Varien_Object $object 
* @return Mage_Core_Model_Resource_Db_Abstract 
*/ 
public function delete(Mage_Core_Model_Abstract $object) 
{ 
    $this->_beforeDelete($object); 
    $this->_getWriteAdapter()->delete(
     $this->getMainTable(), 
     $this->_getWriteAdapter()->quoteInto($this->getIdFieldName() . '=?', $object->getId()) 
    ); 
    $this->_afterDelete($object); 
    return $this; 
} 

因爲_getWriteAdapter()->delete()返回值不被任何

看起來你的確有其刪除之前加載你的模型,或至少檢查我所用通過資源集合存在。