我有产品的自定义属性,假设我有3-4个产品在该属性上具有相同的值。所以,现在我想加载这3个产品并将它们存储在一个数组中。这是我的所作所为:
$all_products = array();
$count = 0;
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addAttributeToSelect('ordernumber');
foreach($collection as $product)
{
$all_products[count] = array ('sku' => $product->getSku(), 'qty' => $this->getRequest()->get('qty'), 'size' => $product->getSize());
$count++;
}
return $all_products;
注意:ordernumber
有一个值,我只是从其他地方获取它。
无论如何,当我运行它时 - 我没有价值观。当我调试时 - 调试器终止于$products[count] = ...
。
我尝试使用自定义属性Mage::...->loadByAttribute('ordernumber', $ordernumber);
加载单个产品,但效果很好。
所以,我的猜测是我没有正确地使用集合操作或者使用数组,但是,我看到了一些我从中得到这个想法的例子。
我做错了什么?
答案 0 :(得分:0)
试试这样:
$all_products = array();
$count = 0;
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addAttributeToSelect('ordernumber');
//add a filter if needed - uncomment the next 2 lines and adjust the value or $ordernumber
//$ordernumber = '123';
//$addAttributeToFilter('ordernumber', $ordernumber)
foreach($collection as $product)
{
$all_products[$count] = array ('sku' => $product->getSku(), 'qty' => $this->getRequest()->get('qty'), 'size' => $product->getSize());
$count++;
}
return $all_products;