Fügen Sie die Varchar -Spalte zur Bestellung der Adresse hinzu
-
16-10-2019 - |
Frage
Ich versuche, der Tabelle Sales/Order_address ein paar VARCHAR -Felder hinzuzufügen, stehe aber gegen einen Spaltendefinitionsfehler.
Ich habe den folgenden Code:
$oInstaller->getConnection()
->addColumn(
$oInstaller->getTable('sales/order_address'),
'address_email',
array(
'nullable' => false,
'length' => 255,
'type' => Varien_Db_Ddl_Table::TYPE_VARCHAR,
'comment' => 'Company Email Address'
)
);
Dies gibt den Fehler zurück: [message:protected] => Invalid column definition data
Wenn ich den zu verwendenden Code ändere Varien_Db_Ddl_Table::TYPE_INTEGER
Dann wird der Code ausgeführt und die Spalte wird hinzugefügt. Ich habe versucht, die Länge und die näherbaren Attribute zu entfernen, aber ohne Erfolg.
BEARBEITEN
Beim Aktualisieren des Skripts wird wie folgt aktualisiert, dann funktioniert es. Weiß jemand, was diesen Fehler verursacht?
$oInstaller->getConnection()
->addColumn(
$oInstaller->getTable('sales/order_address'),
'address_email',
Varien_Db_Ddl_Table::TYPE_VARCHAR . '(255)'
);
Lösung
Verwenden TYPE_TEXT
. TYPE_VARCHAR
ist veraltet (@see Varien_Db_Adapter_Pdo_Mysql::$_ddlColumnTypes
)
Und mach dir keine Sorgen um den Stauraum. Wenn Sie den Typ angeben TYPE_TEXT
aber set length
sagen wir sagen 255
Magento erstellt eine MySQL -Spalte von VARCHAR
Typ.