public function collectionsAction() { $thing_1 = new Varien_Object(); $thing_1->setName('david'); $thing_1->setAge('27'); $thing_1->setLastName('Smith'); $thing_2 = new Varien_Object(); $thing_2->setName('Jane'); $thing_2->setAge(12); $thing_3 = new Varien_Object(); $thing_3->setName('Spot'); $thing_3->setLastName('The Dog'); $thing_3->setAge(7); //var_dump($thing_3->getData()); //var_dump($thing_3["last_name"]); /*Definiremos ahora una serie de collections*/ $collection_of_things = new Varien_Data_Collection(); $collection_of_things->addItem($thing_1)->addItem($thing_2)->addItem($thing_3); foreach ($collection_of_things as $thing) { var_dump($thing->getData()); } echo "<br><br>"; echo "obteniendo el primer y último elemento"; echo "<br><br>"; var_dump($collection_of_things->getFirstItem()); var_dump($collection_of_things->getLastItem()->getData()); echo "<br><br>"; echo "Ahora como xml"; var_dump($collection_of_things->toXml()); echo '<br><br>'; echo 'ahora obtenemos solo las columnas identificadas como name'; echo '<br><br>'; var_dump($collection_of_things->getColumnValues('name')); echo '<br><br>'; echo 'El equipo de Magento nos permite realizar filtrados, ejemplo para el nombre david'; echo '<br/><br>'; var_dump($collection_of_things->getItemsByColumnValue('name', 'Spot')); }
/** * Get an array of skus for all simple products that should be linked to a * configurable product included in the collection of products to be cleaned. * @param Varien_Data_Collection $productCollection * @return array */ protected function _getAllUsedProductSkus(Varien_Data_Collection $productCollection) { $configSkus = array_map(function ($product) { return $product->getSku(); }, $productCollection->getItemsByColumnValue('type_id', Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE)); return Mage::getModel('catalog/product')->getCollection()->addAttributeToFilter('style_id', array('in' => $configSkus))->addAttributeToFilter('type_id', Mage_Catalog_Model_Product_Type::TYPE_SIMPLE)->addAttributeToSelect('sku')->getColumnValues('sku'); }