Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在magento 1.5中添加自定义注册字段_Magento_Magento 1.5 - Fatal编程技术网

如何在magento 1.5中添加自定义注册字段

如何在magento 1.5中添加自定义注册字段,magento,magento-1.5,Magento,Magento 1.5,我尝试在magento 1.5 0中添加自定义注册字段。我试着按照我建立的许多其他方式来做。但是,如果我在注册期间为字段添加任何数据,它不会保存到表customer\u entity\u varchar中,也不会在表eav\u属性中添加任何属性。这是我的代码: 在app/local/etc/modules/Mycustommodule\u Customer.xml中,我有以下内容: <config> <modules> <Mycustommo

我尝试在magento 1.5 0中添加自定义注册字段。我试着按照我建立的许多其他方式来做。但是,如果我在注册期间为字段添加任何数据,它不会保存到表customer\u entity\u varchar中,也不会在表eav\u属性中添加任何属性。这是我的代码:

app/local/etc/modules/Mycustommodule\u Customer.xml
中,我有以下内容:

<config>
    <modules>
        <Mycustommodule_Customer>
            <active>true</active>
            <codePool>local</codePool>
        </Mycustommodule_Customer>
    </modules>
</config>
app/local/Mycustommodule/Customer/Model/Entity/Setup.php
中:

<?xml version="1.0"?>
<config>
    <modules>
        <Mycustommodule_Customer>
            <version>0.1.0</version>
        </Mycustommodule_Customer>
    </modules>
    <global> 
        <models>
            <Mycustommodule_Customer>
                <class>Mycustommodule_Customer_Model</class>
            </Mycustommodule_Customer>
        </models>
        <resources>
            <customerattribute_setup>
        <setup>
            <modules>Mycustommodule_Customer</modules>
            <class>Mycustommodule_Customer_Model_Entity_Setup</class>
        </setup>    
                <connection>
                    <use>core_setup</use>
                </connection>
            </customerattribute_setup>
            <customerattribute_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </customerattribute_write>
            <customerattribute_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </customerattribute_read>     
        </resources>
        <blocks>     
            <mycustommodule_customerattribute>
                <class>Mycustommodule_Customer_Block</class>
            </mycustommodule_customerattribute>    
        </blocks>       
        <helpers>
        <mycustommodule_customerattribute>
        <class>Mycustommodule_Customer_Helper</class>      
        </mycustommodule_customerattribute>
        </helpers>
        <fieldsets>
            <customer_account> 
                <phone><create>1</create><update>1</update></phone>
            </customer_account>
        </fieldsets>  
    </global>    
</config>
class Mycustommodule_Customer_Model_Entity_Setup  extends Mage_Customer_Model_Entity_Setup
{


    public function getDefaultEntities()
    {

        $defaultEntities = parent::getDefaultEntities();

        $defaultEntities['customer']['attributes']['phone'] = array(
                        'label'        => 'Phone Number',
                        'visible'      => 1,
                        'required'     => 1,
                        'position'     => 1,
                    );                           
        return $defaultEntities;
    }

}
$installer->startSetup();

$installer->addAttribute('customer','phone', array(
'label' => 'Phone Number',
'visible'   => 1,
'required'  => 1,
'position'  => 1,
));


$installer->endSetup();
// Get Customer Type ID
$read = Mage::getSingleton('core/resource')->getConnection('core_read');
$eid = $read->fetchRow(
    "select entity_type_id from {$this->getTable('eav_entity_type')} where entity_type_code = 'customer'"
);
$customer_type_id = $eid['entity_type_id'];

// Save Attribute to the customer_form_attribute
$attribute = $eavConfig->getAttribute($customer_type_id, 'phone');

// Here is where you determine in wich areas of magento the attributes are used
$attribute->setData('used_in_forms', array('customer_account_edit', 'customer_account_create', 'adminhtml_customer'));
$attribute->save();
app/local/Mycustommodule/Customer/sql/customerattribute\u setup/mysql4-install-0.1.0.php
中:

<?xml version="1.0"?>
<config>
    <modules>
        <Mycustommodule_Customer>
            <version>0.1.0</version>
        </Mycustommodule_Customer>
    </modules>
    <global> 
        <models>
            <Mycustommodule_Customer>
                <class>Mycustommodule_Customer_Model</class>
            </Mycustommodule_Customer>
        </models>
        <resources>
            <customerattribute_setup>
        <setup>
            <modules>Mycustommodule_Customer</modules>
            <class>Mycustommodule_Customer_Model_Entity_Setup</class>
        </setup>    
                <connection>
                    <use>core_setup</use>
                </connection>
            </customerattribute_setup>
            <customerattribute_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </customerattribute_write>
            <customerattribute_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </customerattribute_read>     
        </resources>
        <blocks>     
            <mycustommodule_customerattribute>
                <class>Mycustommodule_Customer_Block</class>
            </mycustommodule_customerattribute>    
        </blocks>       
        <helpers>
        <mycustommodule_customerattribute>
        <class>Mycustommodule_Customer_Helper</class>      
        </mycustommodule_customerattribute>
        </helpers>
        <fieldsets>
            <customer_account> 
                <phone><create>1</create><update>1</update></phone>
            </customer_account>
        </fieldsets>  
    </global>    
</config>
class Mycustommodule_Customer_Model_Entity_Setup  extends Mage_Customer_Model_Entity_Setup
{


    public function getDefaultEntities()
    {

        $defaultEntities = parent::getDefaultEntities();

        $defaultEntities['customer']['attributes']['phone'] = array(
                        'label'        => 'Phone Number',
                        'visible'      => 1,
                        'required'     => 1,
                        'position'     => 1,
                    );                           
        return $defaultEntities;
    }

}
$installer->startSetup();

$installer->addAttribute('customer','phone', array(
'label' => 'Phone Number',
'visible'   => 1,
'required'  => 1,
'position'  => 1,
));


$installer->endSetup();
// Get Customer Type ID
$read = Mage::getSingleton('core/resource')->getConnection('core_read');
$eid = $read->fetchRow(
    "select entity_type_id from {$this->getTable('eav_entity_type')} where entity_type_code = 'customer'"
);
$customer_type_id = $eid['entity_type_id'];

// Save Attribute to the customer_form_attribute
$attribute = $eavConfig->getAttribute($customer_type_id, 'phone');

// Here is where you determine in wich areas of magento the attributes are used
$attribute->setData('used_in_forms', array('customer_account_edit', 'customer_account_create', 'adminhtml_customer'));
$attribute->save();
我将该文件添加到
app/design/frontend/default/mycustommodule/template/customer/form/register.phtml
app/design/frontend/default/mycustommodule/template/customer/form/edit.phtml


我做错了什么或错过了什么?

我希望下面的链接能帮助你


只有视图(.phtml)文件路径在1.5和1.6+

之间变化,该
$eavConfig
对象来自何处?你发布的代码中没有定义它。哦,这可能就是问题所在。我试试看。thxI添加此$eavconfig=新的Mage_Eav_模型_实体_设置(“核心_设置”);但这并没有改变任何事情。我在customer_entity_varchar和表eav_属性中仍然没有任何关于“电话”的值,谢谢您的快速回答,但我想看到什么??我也尝试过这个解决方案:通过将它添加到register.phtml:$setup=newmage\u Eav\u Model\u Entity\u setup('core\u setup')$属性代码='职业'$设置=数组('position'=>1,'is_required'=>0)$设置->添加属性('1',$AttrCode,$settings);