将VARCHAR列添加到订单地址
-
16-10-2019 - |
题
我试图在sales/order_address表中添加一些VARCHAR字段,但正在遇到列定义错误。
我有以下代码:
$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'
)
);
这返回错误: [message:protected] => Invalid column definition data
如果我更改要使用的代码 Varien_Db_Ddl_Table::TYPE_INTEGER
然后,代码运行并添加了列。我尝试删除长度和无效属性,但无济于事。
编辑
更新脚本时,如下所示。有人知道是什么原因导致此错误?
$oInstaller->getConnection()
->addColumn(
$oInstaller->getTable('sales/order_address'),
'address_email',
Varien_Db_Ddl_Table::TYPE_VARCHAR . '(255)'
);
解决方案
利用 TYPE_TEXT
. TYPE_VARCHAR
被弃用(@see Varien_Db_Adapter_Pdo_Mysql::$_ddlColumnTypes
)
不用担心存储空间。如果指定类型 TYPE_TEXT
但是设置 length
要说 255
Magento将创建一个MySQL列 VARCHAR
类型。