주문 주소에 varchar 열 추가


13

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실행되고 열이 추가됩니다. 길이와 nullable 속성을 제거하려고했지만 아무 소용이 없습니다.

편집하다

스크립트를 업데이트하면 다음과 같이 업데이트됩니다. 누구 든지이 오류의 원인을 알고 있습니까?

$oInstaller->getConnection()
    ->addColumn(
        $oInstaller->getTable('sales/order_address'),
        'address_email',
        Varien_Db_Ddl_Table::TYPE_VARCHAR . '(255)'
    );

답변:


52

사용하십시오 TYPE_TEXT. TYPE_VARCHAR더 이상 사용되지 않습니다 ( @see Varien_Db_Adapter_Pdo_Mysql::$_ddlColumnTypes)

저장 공간에 대해 걱정하지 마십시오. type을 지정 TYPE_TEXT했지만 Magento가 MySQL 열 유형을 만들 length수 있도록 설정 하면255VARCHAR


2
작동합니다! ->addColumn('name', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array( 'nullable' => true, 'length' => 255, ), null)
Martijn van Hoof

나는 이것이 간단하다는 것에 놀랐다 ... 클래스는 내부적으로 더 이상 사용되지 않는 유형을 더 이상 사용되지 않는 것으로 변환한다고 말하지만, 기존 값에 대한 것이라고 생각합니까? 어느 쪽이든, 플러스 하나
Robbie Averill 1
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.