How do i delete data using collection in magento ORM?

Right now i am deleting data like

  $deleteCCL = Mage::getModel('crossdata/customccitem');
  $deleteCCL->load($itemId);
  $deleteCCL->delete();

Is there any way to delete data using collection like:

$rcc = Mage::getModel('crossdata/customccitem')->getCollection()->delete();

?

Thanks a lot,

Balan

4 thoughts on “How do i delete data using collection in magento ORM?”

  1. There isn’t a handy group delete function so either add it to your collection or simply do it directly.

    foreach ($rcc as $ccitem) {
        $ccitem->delete();
    }
    

  2. Mage_Eav_Model_Entity_Collection_Abstract (which extends Varien_Data_Collection_Db) provides a delete() method for collections if you have the ability to extend it.

    However, it’s implementation is basically the same as yours:

    /**
     * Delete all the entities in the collection
     *
     * @todo make batch delete directly from collection
     */
    public function delete()
    {
        foreach ($this->getItems() as $k=>$item) {
            $this->getEntity()->delete($item);
            unset($this->_items[$k]);
        }
        return $this;
    }
    

  3. To implement delete functionality into my collections I would add the following function to my custom Collection/Abstract.php.

    public function delete()
    {
        foreach ($this as $object) {
            $object->delete();
        }
    }
    

Leave a Reply

Your email address will not be published. Required fields are marked *