从Magento中的sales / quote重命名自定义属性

时间:2014-05-21 10:01:21

标签: magento magento-1.7

我正在尝试在Magento中重命名自定义属性,以下代码添加了我只需要使用Magento安装程序脚本删除的等效属性:

<?php
$installer = $this;
$installer->startSetup();

$installer->addAttribute("customer", "is_school",  array(
    "type"     => "int",
    "backend"  => "",
    "label"    => "Organisation Type?",
    "input"    => "int",
    "source"   => "",
    "visible"  => false,
    "required" => false,
    "default" => "",
    "frontend" => "",
    "unique"     => false,
    "note"       => ""
));

$installer->getConnection()->addColumn($installer->getTable('sales/quote'), 'is_school', 'int(11)');
$installer->getConnection()->addColumn($installer->getTable('sales/order'), 'is_school', 'int(11)');

// need code to rename these two column above from is_school to 'org_type'

$installer->endSetup();

1 个答案:

答案 0 :(得分:1)

$installer->getConnection()
->changeColumn($tableName, $oldColumnName, $newColumnName,$definition);

其中

`changeColumn` method is used to modify and rename existing column in the table. It has such parameters:

$tableName - the table name that should be modified
$oldColumnName- the old name of the column, that should be renamed and modified
$newColumnName- a new name of the column
$definition - a new definition of the column (INT(10), DECIMAL(12,4), etc)

了解更多信息

  • addColumn()方法将新列添加到退出表。它有这样的参数:
    • $tableName - 应修改的表名
    • $columnName - 应添加的列名称
    • $definition - 列的定义(INT(10)DECIMAL(12,4)等)
  • addConstraint()方法创建一个新的约束外键。它有这样的参数
    • $fkName - foreing key name,每个数据库应该是唯一的,如果你没有指定FK_前缀,它将自动添加
    • $tableName - 添加外键的表名
    • $columnName - 应该引用另一个表的列名,如果您有复杂的外键,请使用逗号指定多个列
    • $refTableName - 将处理外国表名称
    • $refColumnName - 外表中的列名
    • $onDelete - 对外表中的行删除操作。可以是空字符串(不执行任何操作),cascadeset null。此字段是可选字段,如果未指定,则将使用cascade值。
    • $onUpdate对外表中行键更新的操作。可以是空字符串(不执行任何操作),cascadeset null。此字段是可选字段,如果未指定,则将使用cascade值。
    • $purge - 在外键添加后启用清除行的标志(例如删除未引用的重新记录)
  • addKey()方法用于向表中添加索引。它有这样的参数:
    • $tableName - 应添加索引的表名
    • $indexName - 索引名称
    • $fields - 索引中使用的列名称
    • $indexType - 索引的类型。可能的值包括:indexuniqueprimaryfulltext。此参数是可选的,因此默认值为index
  • dropColumn()方法用于从现有表中删除列。它有这样的参数:
    • $tableName - 应修改的表名
    • $columnName - 应移除的列名称
  • dropForeignKey()方法用于删除外键。它有这样的参数:
    • $tableName - 删除外键的表名
    • $fkName - 外出的关键名称
  • dropKey()方法用于删除表索引。它有这样的参数:
    • $tableName - 应删除索引的表名
    • $keyName - 索引名称
  • modifyColumn方法用于修改表中的现有列。它有这样的参数:
    • $tableName - 应修改的表名
    • $columnName - 应重命名的列名称
    • $definition - 列的新定义(INT(10)DECIMAL(12,4)等)
  • changeColumn方法用于修改和重命名表中的现有列。它有这样的参数:
    • $tableName - 应修改的表名
    • $oldColumnName - 列的旧名称,应重命名和修改
    • $newColumnName - 列的新名称
    • $definition - 列的新定义(INT(10)DECIMAL(12,4)等)
  • changeTableEngine方法用于更改表引擎,例如从MyISAM到InnoDB。它有这样的参数:
    • $tableName - 表名
    • $engine - 新引擎名称(MEMORYMyISAMInnoDB等)

如果您有任何疑问,请告诉我