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 に答える