magento 2 catalog_product_save_before无法保存产品,但仍在加载



我试图将产品保存在事件catalog_product_save_before的观察者中,但不知何故管理面板只是加载,它没有保存产品。

谁能建议解决这个问题?
/**
* Execute observer
*
* @param MagentoFrameworkEventObserver $observer
* @return void
*/
public function execute(
MagentoFrameworkEventObserver $observer
) {
$_product = $observer->getProduct(); // you will get product object
$_sku = $_product->getSku(); // for sku
$_product->setSku("testNew1");
$_product->save();
}

这种方法将导致循环。因为catalog_product_save_before在每个产品保存之前被调度。在这个观察器中,你执行$_product->save();,它将再次调度这个事件,并进入这个观察器,再次调用save()方法,等等。

当你在观察器中得到$product之前,它应该只是工作来调整产品对象,然后它将被保存。

所以删除行$_product->save();,它应该工作良好。

最新更新