[英]Can't get <source_model> attribute to work on System.XML in Magento
[英]How to define a new source_model for magento customer?
我是magento的新手,想要在登錄后根據用戶設置商店視圖。 用戶可以在注冊時選擇商店視圖,並將其作為EAV屬性存儲在數據庫中。
我的安裝腳本:
<?php
$installer = $this;
$installer->startSetup();
$setup = Mage::getModel('customer/entity_setup', 'core_setup');
$setup->addAttribute('customer', 'default_store_view_code', array(
'type' => 'varchar',
'input' => 'select',
'label' => 'Default Store View',
'global' => 1,
'visible' => 1,
'required' => 1,
'user_defined' => 1,
'default' => '',
'visible_on_front' => 1,
'source' => 'ModuleName/source_storeViewCode'
));
Mage::getSingleton('eav/config')
->getAttribute('customer', 'default_store_view_code')
->setData('used_in_forms', array('adminhtml_customer','customer_account_create','customer_account_edit','checkout_register'))
->save();
$installer->endSetup();
?>
used_in_forms目前尚未配置。 我的問題:當我嘗試在magento后端顯示我的客戶的詳細信息時,我收到錯誤:
警告:include(Mage / ModuleName / Model / Source / StoreViewCode.php):無法打開流:沒有這樣的文件或目錄
'source' => 'NameSpace/ModuleName/source_storeViewCode'
和
'source' => 'NameSpace_ModuleName/source_storeViewCode'
也沒用。 它試圖從Mage NameSpace加載。 如何將其設置為我的命名空間?
我的source_model位於local / NameSpace / ModuleName / Model / Source / StoreViewCode.php中。
PS:我的模塊的config.xml
<?xml version="1.0"?>
<config>
<modules>
<NameSpace_ModuleName>
<version>1.0.0</version>
</NameSpace_ModuleName>
</modules>
<global>
<blocks>
<customer>
<rewrite>
<form_register>NameSpace_ModuleName_Block_Form_Register</form_register>
</rewrite>
</customer>
</blocks>
<resources>
<ModuleName_setup>
<setup>
<module>NameSpace_ModuleName</module>
<class>NameSpace_ModuleName_Model_Resource_Setup</class>
</setup>
</ModuleName_setup>
</resources>
</global>
<frontend>
<routers>
<customer>
<args>
<modules>
<moduleName before="Mage_Customer">NameSpace_ModuleName</moduleName>
</modules>
</args>
</customer>
</routers>
</frontend>
</config>
您在config.xml
中缺少與<blocks>
相同的級別
<models>
<modulename>
<class>Namespace_Modulename_Model</class>
</modulename>
<models>
然后使用其中的方法toOptionArray
創建類Namespace_Modulename_Model_Source_StoreViewCode
。 該方法應該返回一個包含可用選項的數組。
在您的安裝腳本中,源代碼應如下所示:
'source' => 'modulename/source_storeViewCode'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.