【问题标题】:Magento 2 observer event not triggeringMagento 2观察者事件未触发
【发布时间】:2016-11-01 00:39:30
【问题描述】:

我已将此观察者添加到我的模块中,并将事件定义放在 events.xml

# app/code/Vendor/ModuleName/etc/frontend/events.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
    <event name="checkout_submit_before">
        <observer name="vendor_modulename_order_save_before" instance="Vendor\ModuleName\Observer\OrderObserver" />
    </event>
</config>

我在观察者中添加了一些逻辑

# app/code/Vendor/Name/Observer/OrderObserver.php
namespace Vendor\ModuleName\Observer;

use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;

class OrderObserver implements ObserverInterface
{

    public function __construct()
    {
    }

    /**
     * @param Observer $observer
     * @return void
     */
    public function execute(\Magento\Framework\Event\Observer $observer)
    {
        $quote = $observer->getQuote();
        ...
        ...
        ...
    }
}

【问题讨论】:

    标签: magento magento2


    【解决方案1】:

    尝试将您的 events.xml 放置为 etc/events.xml

    # app/code/Vendor/ModuleName/etc/events.xml
    
    <?xml version="1.0"?>
    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
        <event name="checkout_submit_before">
            <observer name="vendor_modulename_order_save_before" instance="Vendor\ModuleName\Observer\OrderObserver" />
        </event>
    </config>
    

    并且不需要使用 Magento\Framework\Event\Observer

    # app/code/Vendor/ModuleName/Observer/OrderObserver.php
    namespace Vendor\ModuleName\Observer;
    use Magento\Framework\Event\ObserverInterface;
    
    class OrderObserver implements ObserverInterface
    {
        /**
         * @param Observer $observer
         * @return void
         */
        public function execute(\Magento\Framework\Event\Observer $observer)
        {
            $quote = $observer->getQuote();
            ...
            ...
            ...
        }
    }
    

    确保清理缓存

    bin/magento cache:clean
    

    如果您仍有问题,请告诉我

    【讨论】:

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