我試圖將自定義列添加到銷售訂單網格,並且已將連接和列添加到集合,但該列顯示爲空。此外,當我嘗試過濾時,出現此錯誤:未找到列:1054未知列'方法'中'where子句'。我的代碼似乎與大多數教程中的代碼相同,因此我無法弄清楚爲什麼我的專欄沒有任何付款數據。我回應了最終的SQL查詢,並在MySQL Workbench中運行它,結果和語法似乎沒有問題。我錯過了什麼嗎?我是否需要將一列添加到sales_flat_order_grid表中?我意識到我的「漂亮」付款方式名稱可能與我在過濾時在列中顯示的付款代碼無法良好匹配,但在過濾器選項中使用付款代碼時,我遇到同樣的問題。我想我會在獲得一些列數據後再打這個細節。我正在使用Enterprise 1.12.0.2。Magento將付款方式添加到管理訂單網格
應用程序/代碼/本地/ mymodule中/ adminhtml /塊/銷售/順序/格:
protected function _prepareCollection()
{
$collection = Mage::getResourceModel($this->_getCollectionClass());
$collection->getSelect()->joinLeft(array('sfop'=>'sales_flat_order_payment'), 'main_table.entity_id = sfop.parent_id',array('sfop.method'));
$this->setCollection($collection);
return parent::_prepareCollection();
}
protected function _prepareColumns()
{ //edited for brevity...only my additions below![enter image description here][1]
$payments = Mage::getSingleton('payment/config')->getActiveMethods();
$methods = array();
foreach ($payments as $paymentCode=>$paymentModel)
{
$paymentTitle = Mage::getStoreConfig('payment/'.$paymentCode.'/title');
$methods[$paymentCode] = $paymentTitle;
}
$this->addColumn('method', array(
'header' => Mage::helper('sales')->__('Payment Method'),
'index' => 'method',
'filter_index' => 'sfop.method',
'type' => 'options',
'width' => '70px',
'options' => $methods,
));
}
謝謝合作!雖然我確實得到了SQL錯誤「ambiguous column parent_id」,所以我必須將'main_table.entity_id = parent_id'更改爲'main_table.entity_id = payment.parent_id'。此外,由於您已將表格別名從「sfop」更改爲「付款」,因此您必須在調用addColumn()時將相應的更改變爲「filter_index」選項。 –