Magento 获取捆绑产品的单个选项id
我正在处理一个庞大的捆绑项目列表,但只希望根据用户输入的条件将某些项目显示为选项。这非常简单,只需按照以下行设置一个if语句:Magento 获取捆绑产品的单个选项id,magento,bundle,option,product,Magento,Bundle,Option,Product,我正在处理一个庞大的捆绑项目列表,但只希望根据用户输入的条件将某些项目显示为选项。这非常简单,只需按照以下行设置一个if语句: $returnedproducts = array(21,50,78,23); // THESE ARE PRODUCT IDS. if ($_product->getTypeId() == 'bundle'){ $selectionCollection = $_product->getTypeInstance(true)->getSelect
$returnedproducts = array(21,50,78,23); // THESE ARE PRODUCT IDS.
if ($_product->getTypeId() == 'bundle'){
$selectionCollection = $_product->getTypeInstance(true)->getSelectionsCollection(
$_product->getTypeInstance(true)->getOptionsIds($_product), $_product
);
foreach($selectionCollection as $option) {
if(array_search($option['product_id'], $returnedproducts) !== FALSE){ // ADDED THIS TO FILTER
echo '<li>' . $option->option_id . '</li>';
}
}
}
$returnedproducts=数组(21,50,78,23);//这些是产品ID。
如果($\u product->getTypeId()=='bundle'){
$selectionCollection=$\u product->getTypeInstance(true)->GetSelectionCollection(
$\u product->getTypeInstance(true)->getoptionSID($\u product),$\u product
);
foreach($selectionCollection作为$option){
if(array_search($option['product_id',$returnedproducts)!==FALSE){//将此添加到过滤器
回显“”.$option->option_id. ”;
}
}
}
问题是,由于列表的大小和其他一些因素,这只会占用大量资源。我想找到一种方法,只查找和显示特定的选项id,而不必筛选整个列表(可以在获取选项id的查询中添加
其中product_id=XXXX
)。不过,我似乎找不到搜索单个捆绑包选项的解决方案。有人能帮我做到这一点吗?我可能会因此受到一些反弹,但我发现,当你达到Magento大型收藏的上限时,你可以做以下两件事之一
你可以
// Just in case ---$mysqli = Mage::getSingleton('core/resource')->getConnection('core_write');
$mysqlr = Mage::getSingleton('core/resource')->getConnection('core_read');
$sql = "select * from some_entity_table where some_column = 'somevars'";
$results = $mysqlr->fetchAll($sql);
echo "<PRE>";
foreach ($results as $res)
{
var_dump($res);
}
//以防万一--$mysqli=Mage::getSingleton('core/resource')->getConnection('core_write');
$mysqlr=Mage::getSingleton('core/resource')->getConnection('core_read');
$sql=“从某些实体”表中选择*,其中某些列='somevars';
$results=$mysqlr->fetchAll($sql);
回声“;
foreach(结果为$res)
{
var_dump($res);
}
请不要将您可以在标签中提供的信息放在主题行中;这里的标签系统运行良好,无需辅助。:-)谢谢。请注意,我曾尝试使用$selectionCollection->addFieldToFilter('entity_id',array('in'=>$returnedproducts))
进一步筛选集合,但它似乎不起作用。如果我从中获得MySQL语句,它可以正常工作,但是一旦加载集合,它就会以某种方式删除addFieldToFilter()
…您是否尝试了addAttributeToFilter()
而不是addFieldToFilter()
?