我遇到了在Magento 1.7.0.0的訂單網格中添加自定義列的問題,我希望你能夠在這裏給我一隻手。 基本上我遵循本指南http://www.atwix.com/magento/customize-orders-grid/,其中解釋了我必須製作/app/code/core/Mage/Adminhtml/Block/Sales/Order/Grid.php
的本地版本,並進行一些更改以獲得所需的額外列。按照上述導向,它說,我不得不編輯功能_prepareCollection()
加這行(指定我想在陣列中提取字段)在訂單網格中添加自定義列(Magento 1.7.0.0)
$collection->getSelect()->join('magento_sales_flat_order_address', 'main_table.entity_id = magento_sales_flat_order_address.parent_id',array('telephone', 'email'));
之前
return parent::_prepareCollection();
,並新增兩個在_prepareColumns()
像這樣的列:
$this->addColumn('telephone', array(
'header' => Mage::helper('sales')->__('Telephone'),
'index' => 'telephone',
));
$this->addColumn('email', array(
'header' => Mage::helper('sales')->__('Email'),
'index' => 'email',
));
,就是這樣,很顯然......或者,也許沒有,因爲當我拋出以下錯誤:
Item (Mage_Sales_Model_Order) with the same id "XXXX" already exist
到的解決方案,根據下面的評論,是添加以下行_prepareCollection
前$this->setCollection($collection)
:
$collection->getSelect()->group('main_table.entity_id');
加入了這一行後,訂單網格現在顯示的電子郵件和電話列就像我想要的,但事實證明分頁停止工作,它只顯示最近的20個,它說「頁1出1」,「找到2個記錄」在上面。我似乎無法弄清楚爲什麼會發生這種情況,我所看到的每一條評論都沒有超出上面的最後一條指令。什麼可能是這個問題的原因?
我認爲它可以被複制,因爲我沒有對此模型做任何其他修改。
我試過這個,但它沒有做任何不同的事情。但是,我在這裏發現了真正的問題:這是'$ collection-> getSelect() - > group('main_table.entity_id')這行';如果我評論上面的join()查詢並離開group()查詢上,分頁問題發生。它必須是與此相關的東西,儘管它是列填充的唯一方式。 – SevenSonicStructures