Magento系列模型滤镜修改

时间:2010-10-28 22:58:52

标签: php zend-framework magento zend-db

我的两个模块存在冲突,导致严重的问题,我对后端编程并不熟悉所以我来这里希望有人可以帮助我。附:我确实尝试自己解决这个问题至少一两个小时,学到了很多,但没有任何直接足以解决这个问题的事情。

我需要修改以下函数,以便当它以类似于下面示例的方式使用时,它会从集合中排除id_path包含字符串'questions'的任何项目。< / p>

public function filterByIdPath($idPath)
{
    $this->getSelect()
        ->where('id_path = ?', $idPath);
    return $this;
}

$collection = Mage::getResourceModel('seosuite/core_url_rewrite_collection')
  ->filterAllByProductId($productId)
  ->sortByLength('ASC')
  ->addStoreFilter($storeId, false);
  ->filterByIdPath($idPath)

此函数所在的类是Mage_Core_Model_Mysql4_Url_Rewrite_Collection的扩展版本。如果id_path不合适,我们也可以访问request_path。

以下是id_paths的几个示例:product / 2/3 / questions,product / 5/3,category / 3,product / 3/3 / questions。

1 个答案:

答案 0 :(得分:0)

这是未经测试的。

public function filterByIdPath($idPath)
{
    $this->addFieldToFilter('id_path', array('nlike'=>'%'.$idPath.'%'));
    return $this;
}

“nlike”表示“NOT LIKE”,“%”表示通配符。大概你会把这个函数称为->filterByIdPath('questions')