Domanda

Sto cercando di aggiungere colonna della tabella sales_flat_order esistente, ma si tratta di restituire un errore

Can't retrieve entity config: sales/sales_flat_order

il mio codice è:

<?php
 //@var $installer Mage_Sales_Model_Entity_Setup
$installer = $this;
$installer->startSetup();
$installer->run("
ALTER TABLE `{$installer->getTable('sales/sales_flat_order')}` ADD `giftwrap` SMALLINT NULL;
ALTER TABLE `{$installer->getTable('sales/sales_flat_order')}` ADD `giftwrap_price` DECIMAIL(12,5) NULL;
");
$installer->endSetup();

posso sapere dove ho sbagliato?

Grazie.

È stato utile?

Soluzione

sales_flat_order è il nome completo della tabella e si dovrebbe utilizzare alias nel $installer->getTable()

Se si dà un'occhiata a app\code\core\Mage\Sales\etc\config.xml v'è definizione della tabella

<sales_resource>
    <class>Mage_Sales_Model_Resource</class>
    <deprecatedNode>sales_mysql4</deprecatedNode>
    <entities>
       ....
       <order>
           <table>sales_flat_order</table>
       </order>
       ...
    </entities>
</sales_resource>

Quindi $installer->getTable() dovrebbe ottenere parametro module_alias/table_alias.

Nel vostro caso

module_alias = sales

table_alias = order

$installer->getTable('sales/order')

Di conseguenza tornerà nome della tabella sales_flat_order.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top