【问题标题】:Get associated products获取相关产品
【发布时间】:2014-01-03 10:52:33
【问题描述】:

我创建了一个新模块来在管理面板中创建一个部分。此模块部分有一个“关联产品”子部分,我可以在其中向该模块中的每个项目添加一个或多个产品。

我可以使用诸如

之类的函数来获取字段值
  • $combo->getName()
  • $combo->getComments()

但我无法使用

获得与该项目相关的产品
$combo->getAssociatedProducts()

我尝试如下:

<?php $comboCollection = Mage::getResourceSingleton('combo/combo_collection'); ?>
<?php 
    foreach ($comboCollection as $combo) {
        zend_debug::dump($combo->getAssociatedProducts($combo));  //giving error       
    }
?>

PS:这里$combo不是产品,它只是创建模块中的一个项目。

解释



【问题讨论】:

  • 检查print_r($combo-&gt;getData()); 渲染的内容。如果您没有找到名为 associate_products 的字段,那么您的 getAssociatedProducts 将不起作用。
  • 是的,我看不到 associate_products.. 现在该怎么做?
  • 这意味着您的组合模型/集合的相关数据库表中没有 associate_products 字段。因此,获取关联产品取决于您的模块,即您如何将关联产品信息保存在数据库中。你可以在你的问题中解释更多关于这个模块是如何工作的。
  • @DeependraSingh 我使用 Marius 的 Ultimate module creator 创建了这个模块。我用屏幕截图更新了我的帖子。
  • 相关产品信息保存在 db 的什么位置?

标签: php magento magento-1.8


【解决方案1】:

考虑到表 combo_combo_product 的模型/集合 products。您应该获取产品集合,然后以这种方式将其过滤为组合集合的当前组合 ID

foreach ($comboCollection as $combo) {
    $associatedCollection = Mage::getResourceSingleton('combo/products_collection');
    //$associatedCollection = Mage::getModel('combo/products')->getCollection();
    $associatedCollection->addFieldToFilter('combo_id',array('eq' => $combo->getId()));
    foreach{$associatedCollection as $item){
       print_r($item->getData());
    }
}

【讨论】:

  • 它们不是逗号分隔的。检查这个屏幕截图,我在其中显示表combo_combo_product 的结构。 i.imgur.com/3dUEDUh.png
  • 我的模块没有combo/products_collection 资源.. 我现在该怎么办?
  • 这就是为什么我写了 2 行来获取收藏。评论第一个并取消评论第二个。如果您的表甚至没有模型/集合,那么您必须创建模型/集合
  • 你能帮我看看如何创建产品集合吗?
猜你喜欢
  • 2019-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多