0

商品に属性を使用していますavailablepostalcodes。これは複数選択です。製品ごとに 3 つのオプションがあります: 1234 2345 3456

カテゴリページへの投稿 (フォーム) の後$_POST['postalcode']、これには 2345 が含まれています。しかし、これを行うと、何もフィルタリングされません:

$_productCollection=$this->getLoadedProductCollection();
$_productCollection->addAttributeToFilter("availablepostalcodes", array("finset"=>"5021"));


echo $_productCollection->load()->count(); 

エコーにはまだ 5 が表示されますが、1 つの製品にその郵便番号があるため、1 になるはずです。

商品一覧画面です/catalog/product/list.phtml

私は何を見逃すか見ないのですか?

編集:

$_productCollection = Mage::getModel('catalog/product')
                              ->getCollection()
                              ->addAttributeToSelect('availablepostalcodes')
                              ->addAttributeToFilter('entity_id', array('in' => $_productCollection->getAllIds()));  

それから私は再びすべての製品を手に入れます。

しかし、私がやるとき、$_productCollection->addAttributeToFilter("availablepostalcodes", array("in" => array(5021')));それはまだうまくいきません

4

2 に答える 2

1

複数選択があるため、オプション値ではなく複数選択オプション ID をフィルタリングする必要があります。

于 2013-06-29T09:45:01.820 に答える
1

フィンセットの代わりにトライイン

$_productCollection->addAttributeToFilter("availablepostalcodes", array("in"=>"5021"));
于 2013-06-28T07:44:21.627 に答える