Вам нужно добавить новый файл (инсталлятор скрипт) и имя файла должно быть,
mysql4-upgrade-0.0.2-0.0.1.php
Так что теперь в этом вы можете добавить свой установочный скрипт, как,
$installer = $this;
$installer->startSetup();
$entity = $installer->getEntityTypeId('customer');
if(!$installer->attributeExists($entity, 'attribute_2')) {
$installer->removeAttribute($entity, 'attribute_2');
}
$installer->addAttribute($entity, 'attribute_2', array(
'type' => 'text',
'label' => 'Attribute 2',
'input' => 'text',
'visible' => TRUE,
'required' => FALSE,
'default_value' => '',
'adminhtml_only' => '0'
));
$forms = array(
'adminhtml_customer',
'customer_account_edit'
);
$attribute = Mage::getSingleton('eav/config')->getAttribute($installer->getEntityTypeId('customer'), 'attribute_2');
$attribute->setData('used_in_forms', $forms);
$attribute->save();
$installer->endSetup();
И вам нужно также обновить файл config.xml. Так оно и должно быть,
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Custom_Customerattribute>
<version>0.0.2</version>
</Custom_Customerattribute>
</modules>
<global>
<resources>
<customerattribute_setup>
<setup>
<module>Custom_Customerattribute</module>
<class>Custom_Customerattribute_Model_Mysql4_Setup</class>
</setup>
....
</customerattribute_setup>
</resources>
</global>
</config>
Для получения дополнительной информации посетите here. Если у вас есть сомнения, прокомментируйте здесь.
Обновление: Извините. Имя файла должно быть таким,
mysql4-upgrade-0.0.2-0.0.1.php
Таблица core_resource
содержит записи модуля. Теперь обновляется 0.0.2
. Поэтому magento не будет искать ваши модули (обновленные) xml-файлы для загрузки. так что вам нужно снова изменить имя файла mysql4-upgrade-0.0.3-0.0.2.php
или удалить эту запись в базе данных и переименуйте версию модуля к свежей, как mysql4-upgrade-0.0.0.php
Update-2:
Здесь я приложил новые коды, я проверил в моем местном его работает отлично,
приложение/код/местный/пакет/MODULENAME/и т.д./config.xml
<?xml version="1.0"?>
<config>
<modules>
<Packagename_Modulename>
<version>0.0.0</version>
</Packagename_Modulename>
</modules>
<global>
<helpers>
<modulename>
<class>Packagename_Modulename_Helper</class>
</modulename>
</helpers>
<models>
<modulename>
<class>Packagename_Modulename_Model</class>
<resourceModel>modulename_mysql4</resourceModel>
</modulename>
</models>
<resources>
<customerattribute1415104755_setup>
<setup>
<module>Packagename_Modulename</module>
<class>Mage_Customer_Model_Entity_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</customerattribute1415104755_setup>
<customerattribute1415104755_write>
<connection>
<use>core_write</use>
</connection>
</customerattribute1415104755_write>
<customerattribute1415104755_read>
<connection>
<use>core_read</use>
</connection>
</customerattribute1415104755_read>
</resources>
</global>
</config>
приложение/код/местный/пакет/MODULENAME/Helper /Data.php
<?php
class Packagename_Modulename_Helper_Data extends Mage_Core_Helper_Abstract
{
}
приложения/код/местный/пакет/MODULENAME/SQL/customerattribute1415104755_setup/mysql4-установка-0.0.0.PHP
<?php
$installer = $this;
$installer->startSetup();
$installer->addAttribute("customer", "myattrbute1", array(
"type" => "varchar",
"backend" => "",
"label" => "My attribute-1",
"input" => "text",
"source" => "",
"visible" => true,
"required" => false,
"default" => "",
"frontend" => "",
"unique" => false,
"note" => ""
));
$attribute = Mage::getSingleton("eav/config")->getAttribute("customer", "myattrbute1");
$used_in_forms=array();
$used_in_forms[]="adminhtml_customer";
$used_in_forms[]="checkout_register";
$used_in_forms[]="customer_account_create";
$used_in_forms[]="customer_account_edit";
$used_in_forms[]="adminhtml_checkout";
$attribute->setData("used_in_forms", $used_in_forms)
->setData("is_used_for_customer_segment", true)
->setData("is_system", 0)
->setData("is_user_defined", 1)
->setData("is_visible", 1)
->setData("sort_order", 100)
;
$attribute->save();
$installer->addAttribute("customer", "myattrbute2", array(
"type" => "varchar",
"backend" => "",
"label" => "My attribute-2",
"input" => "text",
"source" => "",
"visible" => true,
"required" => false,
"default" => "",
"frontend" => "",
"unique" => false,
"note" => ""
));
$attribute = Mage::getSingleton("eav/config")->getAttribute("customer", "myattrbute2");
$used_in_forms=array();
$used_in_forms[]="adminhtml_customer";
$used_in_forms[]="checkout_register";
$used_in_forms[]="customer_account_create";
$used_in_forms[]="customer_account_edit";
$used_in_forms[]="adminhtml_checkout";
$attribute->setData("used_in_forms", $used_in_forms)
->setData("is_used_for_customer_segment", true)
->setData("is_system", 0)
->setData("is_user_defined", 1)
->setData("is_visible", 1)
->setData("sort_order", 100)
;
$attribute->save();
$installer->addAttribute("customer", "myattrbute3", array(
"type" => "varchar",
"backend" => "",
"label" => "My attribute-3",
"input" => "text",
"source" => "",
"visible" => true,
"required" => false,
"default" => "",
"frontend" => "",
"unique" => false,
"note" => ""
));
$attribute = Mage::getSingleton("eav/config")->getAttribute("customer", "myattrbute3");
$used_in_forms=array();
$used_in_forms[]="adminhtml_customer";
$used_in_forms[]="checkout_register";
$used_in_forms[]="customer_account_create";
$used_in_forms[]="customer_account_edit";
$used_in_forms[]="adminhtml_checkout";
$attribute->setData("used_in_forms", $used_in_forms)
->setData("is_used_for_customer_segment", true)
->setData("is_system", 0)
->setData("is_user_defined", 1)
->setData("is_visible", 1)
->setData("sort_order", 100)
;
$attribute->save();
$installer->addAttribute("customer", "myattrbute4", array(
"type" => "varchar",
"backend" => "",
"label" => "My attribute-4",
"input" => "text",
"source" => "",
"visible" => true,
"required" => false,
"default" => "",
"frontend" => "",
"unique" => false,
"note" => ""
));
$attribute = Mage::getSingleton("eav/config")->getAttribute("customer", "myattrbute4");
$used_in_forms=array();
$used_in_forms[]="adminhtml_customer";
$used_in_forms[]="checkout_register";
$used_in_forms[]="customer_account_create";
$used_in_forms[]="customer_account_edit";
$used_in_forms[]="adminhtml_checkout";
$attribute->setData("used_in_forms", $used_in_forms)
->setData("is_used_for_customer_segment", true)
->setData("is_system", 0)
->setData("is_user_defined", 1)
->setData("is_visible", 1)
->setData("sort_order", 100)
;
$attribute->save();
$installer->endSetup();
И, наконец, включить ваш модуль в, приложение/и т.д./модули/Packagename_Modulename.xml
<?xml version="1.0"?>
<config>
<modules>
<Packagename_Modulename>
<active>true</active>
<codePool>local</codePool>
<version>0.0.0</version>
</Packagename_Modulename>
</modules>
</config>
Спасибо, но это все еще не работает. Я обновил весь кеш до и после, очистил кеш и кеш-память. Также называется установочным файлом, как вы сказали, 'mysql4-install-0.0.1-0.0.2.php', а также' mysql4-install-0.0.2.php' без везения –
Прошу прощения. Имя файла должно быть таким, как mysql4-install-0.0.2-0.0.1.php. Я обновляю свой ответ, пожалуйста, проверьте его. – Elavarasan
Обновлено имя файла, но оно все еще не работает. Я просмотрел таблицу базы данных «core_resource» и смог увидеть обновленную версию 0.0.2 для этого модуля. Глядя в другое место в Интернете, это выглядело как удаление этого, а затем бег снова решился, и это произошло, не уверен, почему ?! –