2011-12-14 7 views
4

addAttributeToFilter()に問題があり、期待したとおりに動作しません。'like'を使用しているMagento属性フィルタが期待通りに機能しない

私は

4_1 
4_2 

を得ることを期待しかし、私はまた

42_1 
420_1 

目標は、私は自分でそれらを関連付けることができるように、簡単な製品のコレクションを取得することで取得4_%に渡す

$product = Mage::getModel('catalog/product'); 
...snip... 
$simple_associated_collection = $product->getCollection() 
    ->addAttributeToFilter('type_id', 'simple') 
    ->addAttributeToFilter('sku',array('like'=>$configurable_product_sku.'_%')) 
    ->load(); 

インポート後の構成可能な親。

私はMySQLと同じ結果を得るために、どのようにLIKEを使用する必要がありますか?

+1

あなたは 'エコー$ simple_associated_collection-> getSelect()を呼び出すことによって、あなたのSQL文をデバッグすることができます - >')(組み立て。 – Nick

+0

ありがとう@Nick、それは私が期待していたSQLを表示していました。私は '_ 'はワイルドカード文字です(単純なGoogleがこれを持っています!)。 '\ _で固定されています –

答えて

6

ここではMagentoには障害はありませんでした。_はワイルドカード文字です。

私は期待していたsqlをエコーするためにNickのコメントを使用しました。

は修正:

->addAttributeToFilter('sku',array('like'=>$configurable_product_sku.'\_%')) 
-1

->addAttributeToFilter('sku',array('like'=>$configurable_product_sku.'_'.'%')) 
関連する問題