Ant*_*ore 9 collections magento
似乎不起作用:
<?php
$collection = Mage::getModel('catalog/product')->getCollection();
foreach($collection->getItems() as $key => $_product){
//product
$collection->removeItemByKey($key);
}
?>
Run Code Online (Sandbox Code Playgroud)
$ collection仍然填充
小智 14
如果您想使用空集合,最好的方法是使用一个始终生成空集的过滤器加载它.这是一个例子:
$collection = Mage::getModel('catalog/product')->getCollection()
->addFieldToFilter('entity_id', 0);
Run Code Online (Sandbox Code Playgroud)
因为Magento产品ID从1开始,所以此集合将保持为空,直到您使用addItem()方法向其添加项目.
另一方面,clear()和removeItemByKey()只会触发第二次运行到数据库以重新获取您不想要的数据.
你的问题没有意义.运行以下代码
$c = Mage::getModel('catalog/product')->getCollection();
foreach($c->getItems() as $key=>$item)
{
$c->removeItemByKey($key);
}
foreach($c->getItems() as $key=>$item)
{
var_dump($key);
}
var_dump( "Done" );
Run Code Online (Sandbox Code Playgroud)
结果只输出"完成"一词(Magento 1.6.1).
我猜你安装 Magento的事情是调用$ c-> getItems(); 触发重新加载集合.因此,您删除所有项目,但是当您拨打第二个项目时getItems,将重新获取该集合.
| 归档时间: |
|
| 查看次数: |
17200 次 |
| 最近记录: |