Php Magento 2以编程方式更新产品并将空值保存到产品属性

Php Magento 2以编程方式更新产品并将空值保存到产品属性,php,attributes,product,magento2,Php,Attributes,Product,Magento2,使用取自csv文件的值更新现有产品(Magento CE 2.1.5)属性,当值不是空字符串时没有问题,但当尝试保存空字符串时,产品属性值尚未更新 $product->setWidth(""); $product->save(); 产品保存后的结果是属性值保持更新前的相同值。 尝试了其他几种方法,但没有结果 $product->setWidth(""); //does nothing $product->setData("width",""); //does noth

使用取自csv文件的值更新现有产品(Magento CE 2.1.5)属性,当值不是空字符串时没有问题,但当尝试保存空字符串时,产品属性值尚未更新

$product->setWidth("");
$product->save();
产品保存后的结果是属性值保持更新前的相同值。 尝试了其他几种方法,但没有结果

$product->setWidth("");  //does nothing
$product->setData("width",""); //does nothing
$product->unsetData("width"); //does nothing
$product->setWidth(new \Zend_Db_Expr('')); //does nothing
$product->setData("width",null); //does nothing
$product->save();
所以问题是什么是正确的方法来做这件事?因此,想知道设置magento 2.x属性emtpy的正确方法是什么?

如果我们尝试将其设置为null,则该属性采用“默认”值

使用
$product->setWidth(“”)
来代替,基本上设置一个空格而不是null可以解决问题


在收集数据时,如果(!empty($product->getWidth()){…}

发现csv导入时存在错误报告,则使用
进行操作,因此问题可能与管理方面的“永不停止”有关。保存emtpy值没有问题,因此必须找到正确的方法来设置值emtpy,尝试添加_edit_mode标志,但这也无济于事。