注文アイテムを表示するグリッドが必要です。
コレクションを使っています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'
)
);