カスタム列を Sales Order グリッドに追加しようとしていて、結合と列をコレクションに追加しましたが、列が空で表示されます。また、フィルタリングしようとすると、次のエラーが表示されます: Column not found: 1054 Unknown column 'method' in 'where clause'. 私のコードは、そこにあるチュートリアルの大部分と同じように見えるので、私の列に支払いデータがない理由がわかりません. 最終的な SQL クエリをエコーして MySQL Workbench で実行したところ、結果と構文は問題ないようです。何か不足していますか?sales_flat_order_grid テーブルに列を追加する必要がありますか? 「きれいな」支払い方法の名前が、フィルターに移動するときに列に表示されている支払いコードとうまく一致しない場合があることに気付きましたが、フィルター オプションで支払いコードを使用する場合も同じ問題があります。いくつかの列データを取得した後、その詳細を後でヒットすると考えました。Enterprise 1.12.0.2 を使用しています。
アプリ/コード/ローカル/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,
));
}