カスタム拡張では、このようにオブザーバーを作成しています。
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;
}
}
オブザーバー関数が呼び出されましたが、ページにカスタムエラーが表示されません。これのInstadeはそれがこの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 2017
デフォルトのメッセージ「アイテムを削除できません」が表示されます。カスタムメッセージのinstade。質問チェックを今すぐ更新します。
—
Dhiren Vasoya 2017
実行したい思考が実行されますか?デバッグ方法:のようにブラウザーに出力を送信
—
Rendy Eko Prastiyo 2017
Hello Nasty World!
して追加exit
し、$message = 'blablabla'
行の上のコード実行を終了します。メッセージが表示された場合は、次のステップに進むことができます。試してみてHello Nasty World!
、ブラウザに送信された場合は、今すぐ許可してください。
はい、その横にexitを配置すると、画面にメッセージが表示されます。あなたが望むなら、私はスクリーンソートを提供しました。
—
Dhiren Vasoya 2017
どのメッセージを見ましたか?
—
Rendy Eko Prastiyo 2017
Hello nasty World
またはWe can't remove the item!
または他の何か?スクリーンショットも提供してください。