2012-05-09 3 views
3

Magento Multiple select属性でaddAttributeToFilterを使用する際に問題が発生しています。Mentliple SelectでMagento addAttributeToFilter

車種には複数選択属性がありますので、内容は「Audi」、「BMW」などです。私の例では、私は5を選択したタイヤ製品を複数選択しています。

「BMW」を選択したフィールドの1つとして商品を表示したいとします。

私が働いていないされ、次のすべてを試してみました:

$products->addAttributeToFilter('make', array('like' => '%BMW%')); 
$products->addFieldToFilter('make', array('like' => '%BMW%')); 
$products->addAttributeToFilter('make', array('like' => '%38%')); // id of the attribute option 

何も動いていないようにみえて、私は少しこだわっています。どんなアドバイスも感謝しています。

+0

がい$製品 - > addAttributeToFilter( 'make'、 '38')または$ products-> addAttributeToFilter( 'make'、array( 'eq'、38));あなたに何かを与える? –

+0

動作しません。 Magentoはこのような文字列として 'make'を作成します:28,30,35,38 - もし私がid 38のBMWで製品をフィルタリングする必要があるなら、それらの値をすべてチェックする必要があります。 –

+0

申し訳ありませんが、それを逃した! –

答えて

10

ソリューションを使用することですFind In Setクエリなど:

$this->_productCollection->addAttributeToFilter("make", array("finset"=>"38")); 

議論はここで見ることができます:http://www.magentocommerce.com/boards/viewthread/201312/

、さまざまなオプションのリスト:http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-8-varien-data-collections

+0

これは、マルチセレクションだけでなく、通常のドロップダウンでも機能することがわかりました。通常のドロップダウンの速度低下があるかどうかはわかりません。 1.14.2で試験した –

関連する問題