【发布时间】:2016-10-06 23:32:30
【问题描述】:
我正在使用 Laravel 5.3 并试图处理来自 app\Exceptions\Handler.php 内部 render() 的所有常见异常。我想保存一个会话变量并自己在控制器中检查它。
例如:对于TokenMismatchException,它的工作原理如下:
if($excp_class == 'Illuminate\Session\TokenMismatchException'){
return redirect($request->fullUrl())->with('TokenError', 'CSRF');
}
但是,对于NotFoundHttpException,我似乎无法让 Session 保存值。
if(stristr($excp_class, 'NotFoundHttpException')!=false)
{
//return redirect()->route('XYZRoute')->with('TokenError', 'NotFound'); //Also tried `withError`
\Request::session()->put('TokenError', 'NotFound'); //not working
\Request::session()->save();
return back();
}
我在这里错过了什么?
【问题讨论】:
-
您是否遇到了 PHP 异常?我认为
RedirectResponse上没有withError方法。有一个withErrors(复数)方法需要验证结果(MessageProvider),但这不是你在这里所做的。我认为with('TokenError', 'NotFound')就是你想要的。 -
With也不起作用。顺便说一句,我尝试了很多方法将会话放在这里。 -
那你需要解释“不起作用”。您的原始代码看起来会导致 PHP 异常。解释发生了什么,您如何尝试访问错误...详细信息。
-
我已经更新了。再看看。
标签: php exception laravel-5.3