【发布时间】: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_index和index。 -
我在使用 getSelect()->join() 时经常遇到问题。相反,您可以使用 joinTable(),我上周写了一篇博客:blog.fabian-blechschmidt.de/articles/…
-
@KalpeshMehta 太好了,这行得通!如果你把它放在一个答案中,我会接受:)
-
@Guus 很高兴听到它解决了。我已将其作为答案 :)
标签: magento magento-1.7