以下代碼允許向訂單/銷售頁面添加一列,其中顯示送貨方式爲包含所有送貨承運人的送貨說明。Magento - 完整性約束違規:1052 - 運輸方法
_prepareCollection
$collection->getSelect()->join('sales_flat_order', 'main_table.entity_id = sales_flat_order.entity_id',array('shipping_description'));
_prepareColumn
$this->addColumn('shipping_method', array(
'header' => Mage::helper('sales')->__('Shipping Method'),
'index' => 'shipping_description',
'filter_index' => 'main_table.status',
));
的送貨方式似乎完美后,我編譯的一切。現在,當我嘗試將訂單由prcessing排序,並砸在搜索談到這個錯誤:
SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'status' in where clause is ambiguous, query was: SELECT COUNT(*) FROM `sales_flat_order_grid` AS `main_table` INNER JOIN `sales_flat_order` ON main_table.entity_id = sales_flat_order.entity_id WHERE (status = 'processing')
一些研究,這意味着有當表進行接合的雙重身份之後,現在怎麼創建一個alians從這個以及如何應用它。此外,如果有人知道過濾/按此列排序的方式會很棒。
PS。該文件位於: 應用程序/代碼/本地/法師/ Adminhtml /座/銷售/訂單
編輯:現在想弄清楚如何選擇下拉列表基於數據庫中的值來創建。這裏是我試圖去上班代碼:您需要使用自定義渲染
protected function _getAttributeOptions($attribute_code)
{
$attribute = Mage::getModel('sales/order')->getAttribute('shipping_description', $attribute_code);
$options = array();
foreach($attribute->getSource()->getAllOptions(true, true) as $option) {
$options[$option['value']] = $option['label'];
}
return $options;
}
你能否詳細說明如何創建這個定製的渲染,我不知道有關文件的管理在這方面,如果我可以在grid.php或外部類中創建此 - 在那裏將它放置。我真的不想創建一個模塊。 – damek132
已更新。我不建議你重寫或編輯核心文件。更好地創建新模塊。 – zhartaunik
不知道你是否注意到,但我複製了核心文件並使用本地文件夾中的相同文件: app/code/local/Mage/Adminhtml/Block/Sales/Order – damek132