【问题标题】:Magento 1.7 - joined date column in gridMagento 1.7 - 在网格中加入日期列
【发布时间】:2013-01-09 18:48:12
【问题描述】:

我需要一个显示订单商品的网格。

我使用收藏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'
        )
    );

【问题讨论】:

  • 要使用过滤器,您还应该使用filter_indexindex
  • 我在使用 getSelect()->join() 时经常遇到问题。相反,您可以使用 joinTable(),我上周写了一篇博客:blog.fabian-blechschmidt.de/articles/…
  • @KalpeshMehta 太好了,这行得通!如果你把它放在一个答案中,我会接受:)
  • @Guus 很高兴听到它解决了。我已将其作为答案 :)

标签: magento magento-1.7


【解决方案1】:

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

要使用过滤器,您还应该使用filter_indexindex

【讨论】:

    猜你喜欢
    • 2012-12-23
    • 2014-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多