在我的功能,抓住產品的集合,我會通過一個未知數量的屬性,所以我不能硬編碼他們在過濾我的功能就是下面的一個:Magento的1.7添加多個屬性,以收集過濾
public function getAssociatedProducts()
{
$parameters = $this->getRequest()->getPost();
$product = Mage::getModel('catalog/product')->load($parameters['parent_id']);
$grouped = Mage::getModel('catalog/product_type_grouped');
$collection = $grouped->getAssociatedProductCollection($product)
->addAttributeToSelect('*')
->addFilterByRequiredOptions()
->setPositionOrder()
->addStoreFilter($grouped->getStoreFilter($product))
->addAttributeToFilter('status', array('in' => $grouped->getStatusFilters($product)));
// I need to do another addAttributeToFilter on this collection for the $parameters variable above. But the number of paramters I will need to check is unknown.
return $collection;
}
可以通過addAttributeToFilter處理一組屬性? $ parameters變量將帶來的屬性數目是未知的,我只能弄清楚如何一次完成一個,但我需要它足夠靈活以處理添加最多10個屬性到過濾器。
謝謝!
我要補充一點,paramters的陣列可能是這樣的:
galco_weapon_list => 3602,
product_color => 1595,
weapon_draw_hand => 2700
陣列上方將永遠是不同的。
你好Jurgen,謝謝你的回答。本來我曾嘗試類似的東西,但你的回答讓我意識到我錯過了一些東西。你的方法有效。但是,在某些情況下,它不起作用,也許你可以幫助我。我所有的屬性都是多選。當產品只有一個屬性時,請選擇此項,因爲它將其視爲平等。當產品具有多個特定屬性時,它將返回null。我該如何做這個$ collection-> addAttributeToFilter($ code,array('in'=> $ value))的oppopsite,我想查看這個值是否在多選中? –
我只是試過這個,它的工作原理。 $ collection-> addAttributeToFilter($ code,array('like'=>'%'。$ value。'%'));不過,我想知道使用通配符的準確性。 –
您可以簡單地更改代碼來首先檢查'$ v'的數據類型,並相應地使用'addAttributeToFilter()'的不同變體。如果'$ v'是數組,則使用'addAttributeToFilter($ k,array('in',$ v))',等等...... –