मैं काफी हद तक गुगली, ट्रायल और एरर कर रहा हूं लेकिन मुझे समस्या का हल नहीं मिल रहा है।
- फ़ील्ड्स को बदलने की क्षमता और sales_order_grid का क्रम; तथा
- इस ग्रिड पर दो कस्टम फ़ील्ड प्रदर्शित करने की क्षमता (फिल्टर करने योग्य)।
Mage_Adminhtml_Block_Widget_Grid
मेरे कस्टम मॉड्यूल (मैं पर्यवेक्षकों के बारे में जानता हूं, अभी तक अन्य स्थापित मॉड्यूल अपने पर्यवेक्षकों के साथ मेरे परिवर्तनों को ओवरराइड कर रहे थे ) का विस्तार करके, पूर्व (बिंदु 1) को हल किया गया है ।
भले ही, उत्तरार्द्ध मेरी वर्तमान समस्या है, नीचे दो तरीके हैं जो मुझे अब तक असफल रहे हैं।
विधि 1
<?php
/* @var $this Mage_Sales_Model_Mysql4_Setup */
$this->startSetup();
$connection = $this->getConnection();
/**
* Create the payment method dropdown field, because this field _may_ be
* used for searching we will create an index for it.
*/
$connection->addColumn(
$this->getTable('sales/order_grid'),
'x_payment_method',
"ENUM('PayPal', 'SagePay') DEFAULT NULL"
);
$connection->addKey($this->getTable('sales/order_grid'), 'x_payment_type', 'x_payment_type');
/**
* Create the order channel field to identify where the order was originally
* generated from. Also add an index for this field for additional filtering.
*/
$connection->addColumn(
$this->getTable('sales/order_grid'),
'x_sale_channel',
"ENUM('Amazon', 'Play', 'eBay', 'Website') NOT NULL DEFAULT 'Website'"
);
$connection->addKey($this->getTable('sales/order_grid'), 'x_sale_channel','x_sale_channel');
$this->endSetup();
विधि 2
इस बिंदु पर मैं उन्हीं 7 लेखों को पढ़कर थक गया था जिनसे मदद नहीं मिली, इसलिए मैंने वन फील्ड काम करने की कोशिश की; मैंने Magento में त्रुटि लॉग की भी जाँच की और पाया "$ यह-> getTable ()" गलत था, इस प्रकार मैंने इसे हटा दिया।
<?php
/* @var $this Mage_Sales_Model_Mysql4_Setup */
$this->startSetup();
$connection = $this->getConnection();
/**
* Create the payment method dropdown field, because this field _may_ be
* used for searching we will create an index for it.
*/
$this->addAttribute('sales_flat_order', 'x_test_option', array(
'label' => 'X Test Option',
'type' => 'varchar',
'input' => 'select',
'visible' => true,
'required' => false,
'position' => 1,
'visible_on_front' => false,
'option' => array('value' => array('web', 'test 1', 'test 2')),
'default' => array('web'),
));
$this->endSetup();
जो किसी को भीख मांगता है, एक कॉलम और एक विशेषता के बीच अंतर क्या है? मेरा प्रारंभिक अनुमान यह था कि, एक स्तंभ मौजूदा कोर तालिका में जोड़ा जाता है जबकि एक विशेषता EAV_ * तालिकाओं और उचित रूप से संबंधित से जोड़ा जाता है।