我想在我的监听器上放置一条警告消息:
if ($type == '-'){
if ($balance < $amo) {
flash()->overlay('Warning!', 'Amount is higher than Balance.', 'warning');
} else {
$wallet->users()->updateExistingPivot($uid, ["balance" => ($balance - $amo)]);
}
} else {
$wallet->users()->updateExistingPivot($uid, ["balance" => ($balance + $amo)]);
}
但是这个 flash()
似乎不起作用。我的意思是,它不显示消息 Amount is higher than Balance.
。
那么如何通过监听器正确打印这条消息?
答案 0 :(得分:0)
事件应该是主要操作的“副作用”。
因此默认含义是,该事件不应有直接响应。
我认为你应该重新考虑你的代码设计。
无论如何
您可以通过事件将消息放入会话中来实现。这是强烈不推荐的(至少我不推荐)。但至少,请注意在使用后从会话中删除此消息。
你在 try/catch 中有你的事件发射器。如果尝试适合,您将闪烁消息。如果它不适合,您将在侦听器中抛出错误并捕获它。在那里你可以闪现另一条消息。同样,我什至不推荐这种解决方案
示例
if($type == '-'){
if($balance < $amo)
{
flash()->overlay('Warning!', 'Amount is higher than Balance.', 'warning');
}
else
{
$wallet->users()->updateExistingPivot($uid, ["balance" => ($balance - $amo)]);
throw new \Exception('case1');
}
}else{
$wallet->users()->updateExistingPivot($uid, ["balance" => ($balance + $amo)]);
throw new \Exception('case2');
}
然后像这样运行:
try {
event(new YourEventEmitter($params));
return view('dashboard')->with('message', 'event is ok');
} catch (\Exception $e) {
if ($e->message === 'case1')
return view('dashboard')->with('message', 'event error 1');
else if ($e->message === 'case2')
return view('dashboard')->with('message', 'event error 2');
}
**I DO NOT RECOMMEND THIS!!! IT IS NON-SENSE. EVENT SHOULD NOT DO ANYTHING WITH YOUR RESPONSE.**