Magento以编程方式创建属性选项-转义

4nkexdtk  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(96)

我使用脚本以编程方式创建属性选项-代码如下:

echo "Creating option ....\n";
        $attr_model = Mage::getModel('catalog/resource_eav_attribute');
        $attr = $attr_model->loadByCode('catalog_product', $key);
        $attr_id = $attr->getAttributeId();
        if (!$attr_id){
                echo "Cannot find Attribute $code\n";
                return 0;
        }else{
            $option['attribute_id'] = $attr_id;
            $option['value'][$value][0] = $value;
            $option['value'][$value][1] = $value;

            $setup = new Mage_Eav_Model_Entity_Setup('core_setup');
            $setup->addAttributeOption($option);

        }

对于大多数值来说,它工作得非常好。
然而,某些值没有被创建-它没有抛出任何错误,但它没有创建选项。
一个例子是55毫克/千克,这让我怀疑这是一个逃避的问题。
我需要遵守什么特殊的转义规则吗?

sc4hvdpw

sc4hvdpw1#

深入研究之后,我发现如果您在$option ['value']数组中使用的数组键以数字开头,Magento会将其作为addAttributeOption()调用的一部分进行不同的处理(将其转换为(int),然后假设您正在编辑一个现有的属性选项)
确保数组键不以数字开头(我通过在键上预先挂起“opt”来做到这一点)可以解决这个问题。

相关问题