2

顧客の郵便番号/郵便番号を表示する注文グリッドを取得しようとしています。

sales_flat_order_address エイリアスをコレクションに参加させようとしていますが、成功しません。

protected function _prepareCollection() {
    $collection = Mage::getResourceModel($this->_getCollectionClass());
   $collection->getSelect()->join('sales_flat_order_address', 'main_table.entity_id = sales_flat_order_address.parent_id',array('postcode'));
  //var_dump($collection);
    $this->setCollection($collection);
    return parent::_prepareCollection();
}

誰でも、これに対する解決策を見つけ出すのを手伝ってくれますか?

4

1 に答える 1

3

親を返す前::_prepareCollection(); 結合を作成する必要があります。

$collection->getSelect()->joinLeft(array('billing'=>'sales_flat_order_address'),
    'main_table.entity_id = billing.parent_id AND billing.address_type="billing"',array('billing.postcode AS bp'));

代わりに配送先の郵便番号が必要な場合は、次を使用します。

$collection->getSelect()->joinLeft(array('shipping'=>'sales_flat_order_address'),
    'main_table.entity_id = shipping.parent_id AND shipping.address_type="shipping"',array('shipping.postcode AS sp'));

メソッド _prepareColumns に以下を貼り付けます。

$this->addColumn('bp', array(
        'header' => Mage::helper('sales')->__('Billing Postcode'),
        'index' => 'bp',
        'width' => '60px',
        'filter_index'  => 'billing.postcode'
    ));

それは最近のプロジェクトでうまくいきました。

于 2013-01-21T15:36:39.353 に答える