質問

いくつかのVarcharフィールドをSales/Order_Addressテーブルに追加しようとしていますが、列の定義エラーに対抗しています。

次のコードがあります。

$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 次に、コードが実行され、列が追加されます。私は長さとnullable属性を削除しようとしましたが、役に立ちませんでした。

編集

スクリプトを更新すると、次のように更新されると、機能します。このエラーの原因を知っている人はいますか?

$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 タイプ。

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top