0

我需要有一个显示订单项目的网格。

我用收藏sales/order_item_collection

我加入这个sales/orders以获得订单日期

$collection->getSelect()->join( 
           array('orders_alias' => $resource->getTableName('sales/order'))
           , 'main_table.order_id = orders_alias.entity_id'
           , array('orders_alias.increment_id', 'order_date' => 'orders_alias.created_at')
           , null);

添加列定义:

$this->addColumn('order_date',
        array(
            'header'=> $this->__('Date'),
            'align' =>'left',
            'width' => '100px',
            'index' => 'order_date',
            'type' => 'date'
        )
    );

我可以在网格中看到日期。见截图http://imageshack.us/photo/my-images/252/scr027.jpg/

如果我使用过滤器框并尝试过滤某个日期,则会收到此错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'order_date' in 'where clause'

如果我使用此列索引:

orders_alias.created_at

我得到一个空列。

我需要更改什么才能使用日期列上的过滤器?


@KalpeshMehta 的这个解决方案有效:

        $this->addColumn('order_date',
        array(
            'header'=> $this->__('Date'),
            'align' =>'left',
            'width' => '100px',
            'index' => 'order_date',
            'type' => 'date',
            'filter_index' => 'orders_alias.created_at'
        )
    );
4

1 回答 1

2

@Guus,添加我的评论作为答案,以便它可以帮助其他也面临同样问题的人。

要使用过滤器,您还应该filter_index与 一起使用index

于 2013-01-09T10:48:12.740 回答