我如何删除数据使用在magento ORM的集合?

zrfyljdw  于 2023-01-26  发布在  其他
关注(0)|答案(5)|浏览(157)

现在我正在删除数据

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

是否有任何方法可以使用收集来删除数据,例如:

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


多谢了
巴兰

icomxhvb

icomxhvb1#

没有方便的群组删除功能,所以要么添加到你的收藏中,要么直接删除。

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

uklbhaso2#

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;
}
kpbpu008

kpbpu0083#

若要在集合中实现删除功能,必须向集合类或集合继承自的自定义抽象类添加新方法。

    • 示例:**
public function delete()
{
    foreach ($this->getItems() as $key => $item) {
        $item->delete();
        unset($this->_items[$key]);
    }

    return $this;
}
db2dz4w8

db2dz4w84#

多亏了@leek,我的工作终于有了起色:

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

lx0bsm1f5#

您可以使用集合遍历函数

Mage::getModel('crossdata/customccitem')->getCollection()->walk('delete');

或每个功能

Mage::getModel('crossdata/customccitem')->getCollection()->each('delete')->clear();

相关问题