【问题标题】:magento 2 catalog_product_save_before unable to save product but keeps loadingmagento 2 catalog_product_save_before 无法保存产品但一直在加载
【发布时间】:2021-08-16 09:49:48
【问题描述】:

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

任何人都可以提出解决方案吗?

    /**
     * Execute observer
     *
     * @param \Magento\Framework\Event\Observer $observer
     * @return void
     */
    public function execute(
        \Magento\Framework\Event\Observer $observer
    ) {
        $_product = $observer->getProduct(); // you will get product object
        $_sku = $_product->getSku(); // for sku
        $_product->setSku("testNew1");
        $_product->save();
    }

【问题讨论】:

  • 您能分享一下您为此使用的代码吗?

标签: php magento events magento2 magento-2.3


【解决方案1】:

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

当您在保存之前在观察者中获得$product 时,它应该只是调整产品对象,然后将被保存。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多