Фильтр атрибутов Magento, использующий «лайк», не работает должным образом - PullRequest
4 голосов
/ 15 декабря 2011

У меня проблема с addAttributeToFilter(), когда она не работает, как я ожидал.

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

Проходя в 4_% Я ожидаю получить

4_1
4_2

Но я также получаю

42_1
420_1

Цель состоит в том, чтобы получить набор простых продуктов, чтобы я мог связать их с настраиваемым родительским продуктом после импорта.

Как мне использовать LIKE, чтобы получить те же результаты, что и в MySQL?

Ответы [ 2 ]

6 голосов
/ 15 декабря 2011

Magento не был виноват, _ - это подстановочный знак.

Я использовал комментарий Ника, чтобы повторить sql, что я и ожидал.

Исправлено:

->addAttributeToFilter('sku',array('like'=>$configurable_product_sku.'\_%'))
0 голосов
/ 10 октября 2013

пример

->addAttributeToFilter('sku',array('like'=>$configurable_product_sku.'_'.'%'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...