现在我正在删除数据,例如:
$deleteCCL = Mage::getModel('crossdata/customccitem');
$deleteCCL->load($itemId);
$deleteCCL->delete();
有没有办法使用集合删除数据,例如:
$rcc = Mage::getModel('crossdata/customccitem')->getCollection()->delete();
?
非常感谢,
Balan
现在我正在删除数据,例如:
$deleteCCL = Mage::getModel('crossdata/customccitem');
$deleteCCL->load($itemId);
$deleteCCL->delete();
有没有办法使用集合删除数据,例如:
$rcc = Mage::getModel('crossdata/customccitem')->getCollection()->delete();
?
非常感谢,
Balan
没有方便的分组删除功能,因此要么将其添加到您的集合中,要么直接进行删除操作。
foreach ($rcc as $ccitem) {
$ccitem->delete();
}
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;
}
@todo
! :) - Jonathan Day要在集合中实现删除功能,您需要向集合类添加一个新方法或集合继承的自定义抽象类。
示例:
public function delete()
{
foreach ($this->getItems() as $key => $item) {
$item->delete();
unset($this->_items[$key]);
}
return $this;
}
感谢 @leek,我终于让我的工作起来了:
foreach( $collection as $item )
if( <<logic>> ) $collection->getEntity()->delete( $item );
Mage::getModel('crossdata/customccitem')->getCollection()->walk('delete');
对于每个函数
Mage::getModel('crossdata/customccitem')->getCollection()->each('delete')->clear();