我无法处理此异常。
-我使用了try-catch,但这不起作用。
-我使用了$request->hasValidSignature()
,但这也不起作用。
对此我该怎么办?请帮我,对不起我的英语。
答案 0 :(得分:1)
在您的App\Exceptions\Handler@render()
中,您可以执行以下操作:
public function render($request, Exception $exception)
{
if($exception instanceof \Illuminate\Routing\Exceptions\InvalidSignatureException) {
if (request()->ajax() || request()->wantsJson()) {
return response()->json(['Error' => ['message' => 'Invalid Signature']], 500);
}
return response()->view('errors.invalid-signature', [], 500);
}
return parent::render($request, $exception);
}
如果引发的异常是\Illuminate\Routing\Exceptions\InvalidSignatureException
的实例,则将使用位于resources/views/errors/invalid-signature
的视图和HTTP代码500
来呈现该异常。
如果期望,客户端还可以接收JSON响应。这只是一个例子。随时根据您的需要进行修改。
编辑:根据您的评论,您应该尝试以下操作:
public function verify(Request $request)
{
try {
if ($request->route('id') == $request->user()->getKey() && $request->user()->markEmailAsVerified()) {
event(new Verified($request->user()));
return response()->json([
'code' => '200',
'body' => __('responses.email-verified')
]);
}
} catch (\Illuminate\Routing\Exceptions\InvalidSignatureException $e) {
return response()->json([
'Error' => ['message' => 'Invalid Signature nene']
]);
} catch (\Exception $e) {
return response()->json([
'Error' => ['message' => 'An Unknown error occured']
]);
}
}