Привет У меня есть сайт magento, который использует категории в качестве списков подарков для людей. Каждая категория имеет атрибуты list_holder_1 и list_holder_2.
Я создал форму, по которой пользователи могут искать гифлисты (категории) с текстовым полем для каждого атрибута.
Я использую метод getModell..getCollection () с addAttributeToFilter с похожими причинами, но получаю странные результаты.
Вот мой код ..
<?php $list_holder_1 = $_POST['list_holder_1']; ?>
<?php $list_holder_2 = $_POST['list_holder_2']; ?>
<?php $_collection = Mage::getModel('catalog/category')->getCollection();
$_collection->addAttributeToSelect('*');
$_collection->addAttributeToFilter(
array(
array('attribute'=>'list_holder_1', 'like'=>'%'.$list_holder_1.'%'),
array('attribute'=>'list_holder_1', 'like'=>'%'.$list_holder_2.'%'),
));
$_collection->addAttributeToFilter(
array(
array('attribute'=>'list_holder_2', 'like'=>'%'.$list_holder_1.'%'),
array('attribute'=>'list_holder_2', 'like'=>'%'.$list_holder_2.'%'),
));
echo $_collection->getSelect();
?>
Пользователь должен иметь возможность искать каждое имя в любом текстовом поле. Таким образом, мой запрос заканчивается предложением where:
Я только добавил одно имя и одну коробку - «Холм»
WHERE (e.entity_type_id = '3') AND ((_table_list_holder_1.value like '%Hill%') OR (_table_list_holder_1.value like '%%')) AND ((_table_list_holder_2.value like '%Hill%') OR (_table_list_holder_2.value like '%%'))
Как вы можете видеть, он проверяет пустое значение в обоих полях. И по некоторым причинам это вытягивает каждую категорию. Даже если только 1 имеет значение list_holder_1 'Hill'.
Кто-нибудь знает, где я ошибся?
С уважением,
Билли