Ho difficoltà a partecipare al tavolo del cliente_enty_varchar alla tabella Sales_Flat_ORDER_GRID
-
12-12-2019 - |
Domanda
Un client vuole un pezzo specifico di dati dal tavolo del cliente_entity_varchar da visualizzare al posto del cognome del cliente nella griglia dell'ordine di vendita.Sto cercando di unirmi alla tabella cliente_enty_varchar alla tabella sales_flat_order_grid, ma ha avuto problemi.Sono stato in grado di aderire con successo alla tabella Sales_Flat_order_Payment alla tabella Sales_Flat_Order_Grid per visualizzare il numero PO nella griglia;Presumibilmente a causa della natura simile dei tavoli.Ecco il join che ho provato inizialmente dalla classe Mage_Adminhtml_Block_Sales_Order_Grid
.E sì, so non modificare i file core.Volevo solo assicurarmi che il codice fosse giusto prima di estendere il quadro.:)
protected function _prepareCollection()
{
$collection = Mage::getResourceModel($this->_getCollectionClass());
$resource = Mage::getSingleton('core/resource');
$collection->getSelect()->join('customer_entity_varchar', 'main_table.customer_id = customer_entity_varchar.entity_id', array('value'));
$this->setCollection($collection);
return parent::_prepareCollection();
}
. Soluzione
Supponiamo che l'attributo code of PO Number is po_number
Devi ottenere dettagli di attributi usando
Mage::getResourceModel('customer/customer') Model by attribute code .
.
Se il codice dell'attributo è STORE_STATE, è possibile ottenerlo Nome e attributo Attribute Attribute utilizzando il seguente codice.
$po_number = Mage::getResourceModel('customer/customer')->getAttribute('po_number');
$tablename=$po_number->getBackend()->getTable();
.
$ Tabella è stata presa da Static.it può assumere dinamico dal codice sopra
$attributeId=$po_number>getAttributeId()
.
Come tabella customer_entity_varchar
ha lots of records
con different attribute so you need to put attribute id in join query condition
.
$collection = Mage::getResourceModel($this->_getCollectionClass());
$collection>getSelect()->joinLeft(
array('ccp' =>$po_number->getBackend()->getTable()),
'ccp.entity_id = main_table.customer_id
AND ccp.attribute_id = '.(int) $po_number->getAttributeId() . '
',
array('$po_number-'=>'value'));
.