Подтвердить что ты не робот

Как удалить данные с помощью коллекции в magento ORM?

Сейчас я удаляю данные, например

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

Есть ли способ удалить данные с помощью коллекции, например:

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

?

Большое спасибо,

Балан

4b9b3361

Ответ 1

Нет удобной функции удаления группы, поэтому добавьте ее в свою коллекцию или просто сделайте ее напрямую.

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

Ответ 2

Mage_Eav_Model_Entity_Collection_Abstract (который расширяет Varien_Data_Collection_Db) предоставляет метод delete() для коллекций, если у вас есть возможность его продлить.

Однако реализация в основном такая же, как ваша:

/**
 * 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

Чтобы реализовать функцию удаления в мои коллекции, я бы добавил следующую функцию в свой собственный Collection/Abstract.php.

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

Ответ 4

Благодаря @leek, я получил свою работу:

foreach( $collection as $item )
    if( <<logic>> ) $collection->getEntity()->delete( $item );