我尝试搜索此内容,但没有找到任何内容。以编程方式创建具有选择类型的自定义产品属性时,Magento 始终将 eav/entity_attribute_source_table 指定为源模型。
此默认源模型有 2 个问题:
除了必须手动逐一键入数据列表之外,我无法使用从其他地方以编程方式获取的数据自动填充该字段。
虽然我已经指定了“default”或“default_value”(我可以在数据库中看到该值存在),但该字段的第一行仍然显示为空。
如何将默认的 source_model 更改为我自己的源模型以选择类型?
谢谢
最佳答案
您要查找的关键是在 SQL 设置中传递 source
值。确保您的 $installer
是 EAV setup object .
您将在设置脚本中执行以下操作:
$installer = $this;
$installer->starSetup();
// Setup customer multiselect attribute
$attr = array(
'backend' => 'eav/entity_attribute_backend_array',
'input' => 'multiselect',
'label' => 'Permissions',
'note' => 'Used for group-based frontend permissions.',
'required' => false,
'sort_order' => '1000',
'source' => 'eav/entity_attribute_source_table', // Change it here
'user_defined' => true
);
$installer->addAttribute('customer', 'permissions', $attr);
// Add options for permissions
$options = array(
'attribute_id' => $installer->getAttributeId('customer', 'permissions'),
'value' => array(
'place_order' => array('Can Place Orders'),
'view_catalog' => array('Can View the Catalog'),
)
);
$installer->addAttributeOption($options);
$installer->endSetup();
最终,我相信源模型可以是任何提供 toOptionArray()
函数的东西。
关于magento - 如何为自定义属性类型选择创建自定义源模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19411526/