向客户实体添加属性
我当前的目标是添加一个新的客户属性(具有 int
类型),该属性应显示为带有预定义选项的选择(从具有可在后端编辑条目的模型加载,已完成)。 我正在努力正确使用 $installer->addAttribute()
方法,特别是指定正确的源选项。另一个问题是新属性未保存到 eav_entity_attribute 表
我使用的是 Magento CE 1.5.1.0
my current goal is to add a new customer attribute (with int
type) which should appear as select with predefined options (loaded from a model with entries editable in backend, which is done).
I'm struggling with proper use of $installer->addAttribute()
method, especially specifying correct source option. Other problem is the new attribute isn't saved to eav_entity_attribute table
I'm on Magento CE 1.5.1.0
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这是带有
text
渲染器的基本int
属性的代码:添加属性的不寻常步骤是
setData('used_in_forms')
这看起来客户属性是独一无二的。没有它,该字段将不会被渲染,当然在 adminhtml 中也不会被渲染。您可以在customer_form_attribute
数据库表中查看此数组的有效选项。就使用带有预定义选项的
select
而言,这就是您所需要的:这是一个 演练为您的下拉菜单使用自定义源
希望这会有所帮助,
京东
This is the code for a basic
int
attribute withtext
renderer:The unusual step for adding attributes is the
setData('used_in_forms')
this seems to be unique to customer attributes. Without it, the field won't get rendered, certainly not in the adminhtml anyway. You can see the valid options for this array in thecustomer_form_attribute
database table.In terms of using a
select
with predefined options, this is what you need:And here is a walk-through on using a custom source for your drop-down
Hope this helps,
JD
@Jonathan Day 的回答很棒,对我帮助很大。但是 - 只要您将
setup
类设置为Mage_Customer_Model_Entity_Setup
,那么 Magento 就可以为您完成所有这些工作:这是
mysql4-install -XXXphp
文件:上面的
adminhtml_only
将为您处理所有used_in_forms
逻辑。此外,定义group
将负责将其分配给属性组。@Jonathan Day's answer is great and helped me tremendously. However - as long as you've set your
setup
class toMage_Customer_Model_Entity_Setup
, then Magento can do all of that work for you:And here is the
mysql4-install-X.X.X.php
file:The
adminhtml_only
above will handle all of theused_in_forms
logic for you. Also, defininggroup
will take care of assigning it to the attribute group.只需通过以下脚本在自定义模块 mysql 设置文件下添加客户属性即可。
以下脚本用于想要使用客户属性的地方
Just you have add your customer attribute under by your custom module mysql setup file through the following script.
The following script used for where want to use customer attribute
alex 和 leek 提供的解决方案都对我有用。
只是我必须在我们的 AccountController.php 中添加 setter 函数
,其中“专业”是我的自定义属性。
The solution provide by alex and leek both worked for me.
Only I have to add the setter function in our AccountController.php
Where "profession" was my custom attribute.