在自定义扩展中,我这样创建观察者。
app\code\Vendor\Extension\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="sales_quote_remove_item">
<observer name="sales_quote_remove_item_handler" instance="Vendor\Extension\Observer\RemovecartbeforeObserver" shared="false" />
</event>
</config>
和我的观察者:
app\code\Vendor\Extension\Observer\RemovecartbeforeObserver.php
use Magento\Framework\Event\ObserverInterface;
class RemovecartbeforeObserver implements ObserverInterface
{
public function execute(\Magento\Framework\Event\Observer $observer)
{
// HERE IS MY CODE
$message = "THIS IS CUSTOM ERROR MESSAGE";
throw new \Magento\Framework\Exception\LocalizedException(__($message));
return;
}
}
调用了我的Observer函数,但是它没有在页面上显示自定义错误。对此,它会在exception.log
文件中显示我的消息。
main.CRITICAL: exception 'Magento\Framework\Exception\LocalizedException' with message 'THIS IS CUSTOM ERROR MESSAGE' in E:\xampp\htdocs\myworks\magento213\app\code\Vendor\Extension\Observer\RemovecartbeforeObserver.php:106
执行观察者时,页面的外观如何?
—
Rendy Eko Prastiyo
它显示默认消息“我们无法删除该项目。” 安装自定义消息。我现在更新问题检查。
—
Dhiren Vasoya '17
您确定要执行的想法已执行吗?如何调试:尝试将输出发送到浏览器,
—
Rendy Eko Prastiyo,
Hello Nasty World!
然后添加exit
以退出该$message = 'blablabla'
行上方的代码执行。如果看到该消息,则可以转到下一步。尝试一下,如果现在将Hello Nasty World!
其发送到浏览器,请允许我。
是的,如果我在其旁边放置出口,它将在屏幕上显示消息。如果您愿意,那么我提供了屏幕排序。
—
Dhiren Vasoya '17
您看到了什么讯息?该
—
伦迪·埃科·普拉斯蒂约
Hello nasty World
或We can't remove the item!
或其他什么东西?请同时提供屏幕截图。