4
我正在使用捆綁項目的巨大列表,但只想根據用戶輸入的條件顯示某些選項作爲選項。這是很容易通過簡單的線沿線設立一個if語句:獲取捆綁產品的個人選項ID
$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>';
}
}
}
的問題是,這只是吸收了噸的資源由於列表的大小和其他一些因素。我想找到一種方法來查找並僅顯示特定的選項ID,而無需篩選整個列表(可能會將WHERE product_id = XXXX
添加到獲取選項ID的查詢中)。儘管如此,我似乎無法找到用於搜索單個捆綁軟件選項的解決方案。任何人都可以幫我實現這個目標
請不要將信息放在您可以在標籤中提供的主題行中;這裏的標籤系統工作得很好,而且不需要協助。 :-) 謝謝。 –
請注意,我試圖使用'$ selectionCollection-> addFieldToFilter('entity_id',array('in'=> $ returnedproducts));'進一步過濾集合,但它似乎沒有工作。如果我從它得到的MySQL語句它工作正常,但只要集合加載它以某種方式刪除'addFieldToFilter()'... – 1000Nettles
您嘗試'addAttributeToFilter()',而不是'addFieldToFilter()'? –