我如何在addFieldToFilter magento中使用或条件?

时间:2014-05-14 07:33:02

标签: php magento magento-1.8

我正在创建一个搜索表单,用户可以在单个输入字段中输入州,城市或邮政编码。我使用以下代码:

$collection = Mage::getModel('searchservice/service')->getCollection();
$collection->addFieldToFilter('compstate',array('like'=>$post['input1']));
foreach ($collection as $record)
{
    $data[] = $record;
}
Mage::register('data', $data);
$this->renderLayout();

它返回compstate结果,但我希望用户可以输入任何字段,如zip和city。如何使用或在这里使用?

1 个答案:

答案 0 :(得分:2)

像这样:

echo Mage::getModel("modelalias/entityname")
->getCollection()
->addFieldToFilter(
    array(
        'first_condition',
        'second_condition'
    ),
    array(
        array('eq' => 1),
        array('eq' => 0),
    )
)
->getSelect();

上面的查询将产生如下的SQL字符串:

SELECT `main_table`.* FROM `mytablename` AS `main_table` 
WHERE (((first_condition = 1) or (second_condition = 0)))

您应该能够根据自己的需要进行修改。