现在我正在删除
等数据 $deleteCCL = Mage::getModel('crossdata/customccitem');
$deleteCCL->load($itemId);
$deleteCCL->delete();
有没有办法使用以下集合删除数据:
$rcc = Mage::getModel('crossdata/customccitem')->getCollection()->delete();
非常感谢,
巴兰
答案 0 :(得分:23)
没有方便的群组删除功能,因此要么将其添加到您的收藏中,要么只是直接进行。
foreach ($rcc as $ccitem) {
$ccitem->delete();
}
答案 1 :(得分:4)
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;
}
答案 2 :(得分:2)
要在集合中实现删除功能,您必须向集合类或集合继承的自定义抽象类添加新方法。
示例:强>
public function delete()
{
foreach ($this->getItems() as $key => $item) {
$item->delete();
unset($this->_items[$key]);
}
return $this;
}
答案 3 :(得分:1)
感谢@leek,我得到了我的工作:
foreach( $collection as $item )
if( <<logic>> ) $collection->getEntity()->delete( $item );
答案 4 :(得分:0)
可以使用集合遍历功能
Mage::getModel('crossdata/customccitem')->getCollection()->walk('delete');
或每个函数
Mage::getModel('crossdata/customccitem')->getCollection()->each('delete')->clear();