Bir (OR) koleksiyonları kullanarak yapmak Magento

0 Cevap php

Ben, şimdi, ben, bu tablo için bir filtre gibi bir şey yapmak için özel tablo ile özel bir modül çalışıyorum ettik

Mage::getModel('comunity/news')->getCollection()
            ->addFieldToFilter('title', array('like'=>'%'.$this->getRequest()->getParam('q').'%'));

Bu yeterli ve mükemmel çalışıyor, ama başka bir alan eklemek gerekir ile böyle yaparsanız, basit

Mage::getModel('comunity/news')->getCollection()
            ->addFieldToFilter('title', array('like'=>'%'.$this->getRequest()->getParam('q').'%'))  
           ->addFieldToFilter('shortdesc', array('like'=>'%'.$this->getRequest()->getParam('q').'%'));

o çalışır, ancak bir (AND) yapmak ve ben bir (OR), i Varien_Data_Collection_Db sınıfa bakıyordu istiyorum, işlevi addFieldToFilter böyle bir şey görebilirsiniz _getConditionSql için bir çağrı yapmak

        if (is_array($fieldName)) {
        foreach ($fieldName as $f) {
            $orSql = array();
            foreach ($condition as $orCondition) {
                $orSql[] = '('.$this->_getConditionSql($f[0], $f[1]).')';
            }
            $sql = '('. join(' or ', $orSql) .')';
        }
        return $sql;
    }

burada (OR) yapılabilir, ben denedim

->addFieldToFilter(array (
                array('field'=>'title', 'like'=>'%'.$this->getRequest()->getParam('q').'%'),
                array('field'=>'shortdesc', 'like'=>'%'.$this->getRequest()->getParam('q').'%'),
            ))

ama yapar sorgu

SELECT `main_table`.* FROM `uhma_comunidad_articulos` AS `main_table` WHERE (())

i need some help here thanks

0 Cevap