2012-02-29 165 views
3

我正在創建一個裝運箱報告,它將允許管理員查看每個箱子需要裝運一天的訂單的數量。我已經得到了它保存每個貨件的內部箱代碼。問題是這些代碼是「SPECIAL_PKG」或「SHIPPING_PKG_1」,但管理員應該看到人性化的名稱。Magento Collection/Grid - 重命名字段/列值

使用典型的Mysql4集合收集結果,並顯示在Mage_Adminhtml_Block_Report_Grid中。一切工作正常,除了我看到內部代碼而不是友好名稱。

有沒有一種方法可以在顯示收集結果之前重命名代碼?例如,如果我能獲得這樣的陣列..

array(
    'SPECIAL_PKG' => 'Custom Packaging', 
    'SHIPPING_PKG_1' => 'Large Box' 
) 

..然後我可以用此以某種方式改變在報告中顯示的值?

不幸的是,我不能做一個SQL JOIN來獲得這些人性化的名字,因爲數據不存在於一個單一的標準化表格中。如果可以的話,我會的。

回答

1

Got it!我需要通過擴展Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract來實現自定義渲染器。使用this article作爲指導,它效果很好!

萬一它可以幫助任何人有類似的問題:我用構造函數來創建數組(如上面我的問題所示)。然後,在render()的內部,我檢查密鑰是否存在,然後顯示人性化數據。