如何在 magento2 中添加带有观察者的新菜单项?
how to add new menu item with observer in magento2?
如何在 magento2 中添加带有观察者的新菜单项?
我在我的模块 config.xml 中定义了事件,如下所示
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="page_block_html_topmenu_gethtml_after">
<observer name="namespacetest_page_block_html_topmenu_gethtml_after" instance="Namespace\Test\Observer\AddMenu"/>
</event>
</config>
及以下观察者文件包含代码
<?php
namespace Namespace\Test\Observer;
use Magento\Framework\Event\ObserverInterface;
class AddMenu implements ObserverInterface
{
public function execute(\Magento\Framework\Event\Observer $observer)
{
$event = $observer->getEvent();
// function not called when event occur
}
}
我在这里做错了什么?请帮我弄清楚这个问题。
谢谢
您在错误的文件名中定义了事件。即 config.xml
目录
中应该是events.xml
[magentoroot]/app/code/Namespace/Test/etc/frontend/events.xml
如何在 magento2 中添加带有观察者的新菜单项?
我在我的模块 config.xml 中定义了事件,如下所示
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="page_block_html_topmenu_gethtml_after">
<observer name="namespacetest_page_block_html_topmenu_gethtml_after" instance="Namespace\Test\Observer\AddMenu"/>
</event>
</config>
及以下观察者文件包含代码
<?php
namespace Namespace\Test\Observer;
use Magento\Framework\Event\ObserverInterface;
class AddMenu implements ObserverInterface
{
public function execute(\Magento\Framework\Event\Observer $observer)
{
$event = $observer->getEvent();
// function not called when event occur
}
}
我在这里做错了什么?请帮我弄清楚这个问题。 谢谢
您在错误的文件名中定义了事件。即 config.xml
目录
中应该是events.xml[magentoroot]/app/code/Namespace/Test/etc/frontend/events.xml