在Magento中从销售/报价中重命名自定义属性



我正在尝试重命名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();
$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 -前键名,每个数据库应该是唯一的,如果你没有指定FK_前缀,它将被自动添加
    • $tableName -添加外键的表名
    • $columnName—应该引用到另一个表的列名,如果您有复杂的外键,使用逗号指定多个列
    • $refTableName -将被处理的外表名
    • $refColumnName—外表
    • 中的列名
    • $onDelete -在外表中删除行的动作。可以是空字符串(不做任何事),cascade, set null。该字段为可选字段,如果不指定,将使用cascade的值。
    • $onUpdate外表行键更新的动作。可以是空字符串(不做任何事),cascade, set 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 -新引擎名称(MEMORY, MyISAM, InnoDB等)

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

最新更新