Magento列表工具栏调用两次并抛出错误“无法定义相关名...不止一次”

时间:2013-01-18 14:20:27

标签: magento

我有以下问题。

在我的类别列表中,方法Mage_Catalog_Block_Product_List_Toolbar :: setCollection()被调用两次,因为我需要它没有疏忽。

这一直很有效。

现在我在Mage_Catalog_Block_Product_List_Toolbar :: setCollection()中添加了第二个排序属性

(我知道,为了简单起见,不要破解Magento-Core)

    public function setCollection($collection)
{
    $this->_collection = $collection;

    $this->_collection->setCurPage($this->getCurrentPage());

    // we need to set pagination only if passed value integer and more that 0
    $limit = (int)$this->getLimit();
    if ($limit) {
        $this->_collection->setPageSize($limit);
    }
    if ($this->getCurrentOrder()) {
        $this->_collection->setOrder('season', 'ASC'); 
        $this->_collection->setOrder($this->getCurrentOrder(), $this->getCurrentDirection());
    }
    return $this;
}

当我重新加载页面时,我收到错误消息: 您不能多次定义相关名称“季节”。

好的我明白这个错误出现是因为方法setCollection被调用了两次。但是,如果没有我的新行,为什么不会发生呢?

$this->_collection->setOrder('season', 'ASC'); 

我的意思是,无论是否有我的附加代码,这都会被调用两次

$this->_collection->setOrder($this->getCurrentOrder(), $this->getCurrentDirection());

(例如$ this-> getCurrentOrdner是“name”)

我想了解它,以便我能为自己找到解决方案。

谢谢

0 个答案:

没有答案