使用Magento集合计算特定字符串的出现次数?
我已经用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
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******////////