使用Magento集合计算特定字符串的出现次数?

使用Magento集合计算特定字符串的出现次数?,magento,Magento,我已经用Magento映射了我的自定义表,这样我就可以使用下面的方法获取其中的所有数据 Mage::getModel('custom/filter')->getCollection(); 下面是我映射的示例表 filter_id filters ------------------ 1 5,6,5 3 77,8,5,77 10 22,55,33 我需要使用集合计算此表中字段筛选器下特定字符串的出现次数 例如,如果我想计算第二行77的出现次数(f

我已经用Magento映射了我的自定义表,这样我就可以使用下面的方法获取其中的所有数据

Mage::getModel('custom/filter')->getCollection();
下面是我映射的示例表


filter_id filters
------------------
1         5,6,5
3         77,8,5,77
10        22,55,33
 
我需要使用集合计算此表中字段筛选器下特定字符串的出现次数

例如,如果我想计算第二行77的出现次数(filter_id=3)。 如何使用模型集合进行此操作

我知道我可以使用query在magento中使用查询方法直接查询数据库,但我正在尝试用collection的方式来实现这一点

任何建议都会有帮助

谢谢


巴兰

如果我理解正确的话,我会把你的逻辑放到模型中。简单地说,您的选择如下:

$filter_id = 3;
$query = 77;

$collection = Mage::getModel('custom/filter')->getCollection();
$collection->addFieldToFilter('filter_id', $filter_id); // Hopefully it will be more than just one

foreach($collection as $filterModel) {

    $filterModel->getOccurrences($query);

}


/////******     Company/Custom/Model/Filter.php    ******////////


<?php
class Company_Custom_Model_Filter extends Mage_Core_Model_Abstract
{

    protected function _construct()
    {
        $this->_init('custom/filter');
    }

    public function getOccurrences ($value)
    {
        $exploded = explode(',', $this->getFilters());
        $count = 0;

        foreach($exploded as $explodedValue) {
            if ($explodedValue === $value) $count++;
        }

        return $count;
    }

}
$filter\u id=3;
$query=77;
$collection=Mage::getModel('custom/filter')->getCollection();
$collection->addFieldToFilter('filter_id',$filter_id);//希望它不仅仅是一个
foreach($filterModel形式的集合){
$filterModel->GetOccurrencess($query);
}
/////******Company/Custom/Model/Filter.php******////////