Zend framework Magento addAttributeToFilter问题

Zend framework Magento addAttributeToFilter问题,zend-framework,magento,Zend Framework,Magento,嗨,我有一个magento网站,它使用类别作为人们的礼物列表。每个类别都有一个列表持有者1和列表持有者2属性 我创建了一个表单,用户可以通过每个属性的文本框搜索礼物列表(类别) 我正在使用getModel..getCollection()方法和addAttributeToFilter,原因类似,但得到的结果很奇怪 这是我的密码 <?php $list_holder_1 = $_POST['list_holder_1']; ?> <?php $list_holder_2 = $_

嗨,我有一个magento网站,它使用类别作为人们的礼物列表。每个类别都有一个列表持有者1和列表持有者2属性

我创建了一个表单,用户可以通过每个属性的文本框搜索礼物列表(类别)

我正在使用getModel..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();
?>
正如您所看到的,它正在检查两个字段中的空白值。出于某种原因,它把每一个类别都抽了出来。即使只有1的列表值为'Hill'

有人知道我哪里出错了吗

问候,,
Billy

%
是一个通配符,因此
'%%'
匹配所有值。如果要匹配精确值,请不要使用
%
,而是使用
eq

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 '%%'))