按order_id进行的Magento admin过滤最多只能过滤12个结果

时间:2014-12-22 09:41:45

标签: magento filter grid admin

我正在尝试在Magento Admin订单网格中创建过滤器。我创建了一个扩展Mage_Adminhtml_Block_Widget_Grid的新类。我使用real_order_id列和filter_condition_callback来调用一个函数,用于将输入分隔为","。

问题在于,如果我尝试过滤超过12个项目,则会失败(返回主页)。不到12个就好了。我想过滤更多的id。有没有人有任何建议?

这一部分是:     受保护的函数_prepareColumns()     {

    $this->addColumn('real_order_id', array(
        'header'=> Mage::helper('sales')->__('Order #'),
        'width' => '80px',
        'type'  => 'text',
        'index' => 'increment_id',
        'filter_condition_callback' => array($this, 'separatedFilter')
    ));

这里是单独的功能

protected function separatedFilter($collection, $column)
{
    if (!$value = $column->getFilter()->getValue()) {
        return $this;
    } else if(strpos($column->getFilter()->getValue(), ',') !== false) {
        //explode by comma, getting array of IDs
        $val = explode(",", $value);
        //filter the collection, where collection index (order_id) is present in $val array
        $this->getCollection()->addAttributeToFilter($column->getData('index'), array('in' => $val));
    } else {
        //else use default grid filter functionality (like $value input)
        $this->getCollection()->addAttributeToFilter($column->getData('index'), array('like' => '%'.$value.'%'));
    }
    return $this;
}

0 个答案:

没有答案