magento2根据属性id或code来添加options

1、根据获取attribute_code来获取attribute id

$attr = $this->_objectManager->create(‘Magento\Eav\Model\ResourceModel\Entity\Attribute‘);
$attributeId = $attr->getIdByCode(‘catalog_product‘, ‘brand‘);  

注释:catalog_product代表属性实体类型,brand代表属性code

2、实例化eav Model类型

$eav = $this->_objectManager->create(‘Magento\Eav\Setup\EavSetup‘);

3、构建option数组

$options=array(‘option1‘,‘option2‘,‘option3‘,.....);
for($i=0;$i<count($options);$i++){
   $option[‘order‘][‘option‘.$i] =$i;/*option的sort_order*/
   $option[‘value‘][‘option‘.$i][0] = $options[$i];/*option后台显示lable*/
   $option[‘value‘][‘option‘.$i][1] = $options[$i];/*option前台显示lable*/
}

4、添加option

$eav->addAttributeOption($option);

5、应该就ok了!

时间: 2024-08-25 01:11:53

magento2根据属性id或code来添加options的相关文章

MVC扩展DataAnnotationsModelMetadataProvider给model属性对应的页面元素添加任意属性和值

比如,有这样一个类: public class User    {        public string Name { get; set; }    } 当在强类型视图页,显示属性Name对应的input元素,并想添加一个title属性和对应的值,如图: □ 思路 →自定义TooltipAttribute,可以打到Name属性上.→自定义DataAnnotationsModelMetadataProvider,把TooltipAttribute的Tooltip属性值放到放到ModelMeta

html5 转义实体字符 元数据 跳转 全局属性 id class lang style

实体 Html 实体就是把特殊字符通过代码显示出来, 比如, <>在浏览器会识别为标签,不能正常显示, 这是你就需要安如<去表达左尖括号. 元数据 2. 声明字符编码 3.模拟http表头字段 跳转页面 全局属性 id    配合css js 表示式样 页面内唯一性 class         class 属性用来给元素归类, 通过文档中某一个或者多个元素同时设置css样式 id用"#"连接样式 class 用"."来连接样式 contentedi

JS对select动态添加options操作[IE&amp;FireFox兼容]

<select id="ddlResourceType" onchange="getvalue(this)"> </select> 动态删除select中的所有options: document.getElementById("ddlResourceType").options.length=0; 动态删除select中的某一项option: document.getElementById("ddlResourc

DOM 中的 id 属性会往全局变量中添加 id 值的变量

一直没注意到这个坑,今天看<你不知道的 JavaScript>中提到了,今后需要注意. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <div id="foo"></div> <script type=&quo

class属性中为嘛会添加非样式的属性值?

来由 在一些插件中经常看到, 在class属性中出现一些跟样式无关的属性值, 这些值在css样式中没有对应定义, 但是在js中会根据这个值来给dom对象添加特殊的行为, 例如: jquery validate: from http://www.cnblogs.com/hejunrex/archive/2011/11/17/2252193.html <p><label for="email">E-Mail</label><input id=&qu

Code First添加一个现有数据库中的表

描述 刚刚使用EF,还没搞明白,遇到下面问题,记录一下. 都说EF好用,一直也没用过,以前写代码都是ADO.NET,写起来费时费力还没什么大进展,如果能把这些事简化一下把精力放到逻辑或者更有用的地方岂不是更好.所以想使用EF.Code First,从字面的意思来看是先有代码后有数据库,通过Model来创建数据库,好像只能是通过Model来生成数据库,至少我接触2天以来是这样,项目已经开始一段时间了,数据库已经有一定的数据,虽然是测试数据,但也不想删掉,从新添加数据也是很烦人的事.想找到一种能够不

Android控件所共有属性ID、宽、高、背景、内容位置、状态、内容跟边界的间隙、边界跟其他控件边界的间隙

Android控件(包括布局)的所共有的属性: android:id="@+id/denglu_et_name"                     设置控件的id,denglu_et_name可以替换成你需要的id号名称 android:layout_width="wrap_content"        设置控件的宽 android:layout_height="wrap_content"       设置控件的高            

HTML中属性ID和属性NAME有何区别?

今天出美工面试题的时候,David让我加上一道题:HTML中id和name的区别.一听对呀,HTML中id和name有什么区别,只是平时在用,倒没怎么想过,只是那么用了罢了,呵呵,其实在做网页的时候有很东西都只是那么的用了,而没有考虑为什么那么用了...    有同道中人说“ID就像是一个人的身份证号码,而Name就像是他的名字,ID显然是唯一的,而Name是可以重复的.”        id 在HTML中的作用:      1.用id选择相应的style sheet(风格).       2.

建议外键保存id还是code

今天做项目遇到导入一批数据,但是因为基础档案(只的是用户档案.部门档案等)重新导入过,所以单据的外键id都关联不到以前的基础档案数据了,如果当时外键用code就不会这样了. 另外建议专门有张表管理各个单据的code前缀