大家好!我希望你能给我一个线索,因为我仍然是 Magento 的菜鸟。
我尝试显示我在数组中获得的产品列表。在Mage/Catalog/Block/Product/List.php
中,我创建了一个新Varien_Data_Collection()
对象,在其中推送了我的产品对象(使用->addItem($product)
)。
然后我返回我的自定义集合,List.php
班级使用它来显示产品列表。
当我在浏览器中调用该页面时,显示的产品数量正确,当我单击它查看产品页面时,我得到了正确的页面。
但是,所有数据(如产品名称、价格等)都是空的。我猜 List 类用来捕获这些数据的方法在我的Varien_Data_Collection
对象中失败了。
为了说明,这是我的代码示例:
// getting a particular product
$mainProduct = Mage::getModel('catalog/category')->load($currentCat->getId());
$mainProduct = $mainProduct->getProductCollection();
$mainProduct = $mainProduct->addAttributeToFilter('product_id', $_GET['cat_id']);
// creating a custom collection
$myCollection = new Varien_Data_Collection();
foreach ($mainProduct as $product) {
// getting my particular product's related products in an array
$related = $product->getRelatedProductIds();
if ($this->array_contains($related, $_GET['cat_id'])) {
// if it suits me, add it in my custom collection
$myCollection->addItem($product);
}
}
return $myCollection;
这就是我在列表页面中得到的:
当 I 时var_dump($myCollection)
,我可以看到['name']
,['price']
等字段没有被引用。只有['product_id']
和许多其他我不关心的领域。
我的终极问题是:如何将包含这些产品数据的集合返回给我的 List 类?我知道它解释得不好,但我的英语非常有限,我尽力做到最好:(